日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

空间皮肤代码_不废话,看我20行代码搞定色块提取与定位…….

發布時間:2025/3/11 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 空间皮肤代码_不废话,看我20行代码搞定色块提取与定位……. 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊上方藍字關注我們

微信公眾號:OpenCV學堂

關注獲取更多計算機視覺與深度學習知識

問題來由

這個問題是誰問我的我已經不記得了,剛開始的時候他發了這張圖像給我,讓我給他看一下,我當時告訴他轉換一下色彩空間提取就好啦,后來我記得他在微信上有問了我一次,今天我整理文件看到這張圖又想起了,感覺他問了我好幾次我都沒回復挺不意思的,但是我實在不知道他是誰了,微信上消息太多,早已經把他淹沒了,加之我記憶力退化嚴重,思來想去只好寫篇文章告訴他,我回答了!如果看完感覺對你也有用,點在看支持即可!

先看看他發我的圖像文件吧

在來說說他的需求:

找到途中全部青色的區域,檢測出來,繪制中心點!他用霍夫變換,結果直接翻車了,原因其實我很理解,這個圖有很多梯度干擾,噪聲干擾,用了肯定翻車!然后他就問我怎么辦?

解題思路

直接轉換到HSV色彩空間,得到如下結果:

然后我選擇5x5的開操作,完成之后得到

使用OpenCV輪廓發現,對輪廓擬合圓,求的圓心坐標得到輸出結果如下:

怎么樣,效果好嗎?

代碼實現

上述步驟的代碼演示,主要分為如下步驟

1.加載圖像并轉換到HSV色彩空間,得到mask
2.根據mask二值圖像,進行形體學處理
3.使用輪廓發現,找到所有最外層輪廓
4.對輪廓進行圓擬合,得到圓心與半徑,然后繪制

?代碼如下:

1#include?
2#include?
3
4using?namespace?cv;
5using?namespace?std;
6
7int?main(int?argc,?char**?argv)?{
8????Mat?image?=?imread("D:/images/zsxq/zsxq_20.png");
9????imshow("input",?image);
10
11????//?色彩空間轉換
12????Mat?hsv,?mask;
13????cvtColor(image,?hsv,?COLOR_BGR2HSV);
14????inRange(hsv,?Scalar(40,43,?46),?Scalar(50,?255,?255),?mask);
15????imshow("mask",?mask);
16????imwrite("D:/mask.png",?mask);
17
18????//?形態學開操作
19????Mat?se?=?getStructuringElement(MORPH_RECT,?Size(5,?5),?Point(-1,?-1));
20????morphologyEx(mask,?mask,?MORPH_OPEN,?se);
21????imshow("binary",?mask);
22????imwrite("D:/binary.png",?mask);
23
24????//?輪廓發現
25????vector<vector>?contours;26????vector?hiearchy;27????findContours(mask,?contours,?hiearchy,?RETR_EXTERNAL,?CHAIN_APPROX_SIMPLE);28????for?(int?i?=?0;?i?29????????//?圓擬合30????????RotatedRect?rrt?=?fitEllipse(contours[i]);31????????Point?ct?=?rrt.center;32????????int?h?=?rrt.size.height;33????????int?w?=?rrt.size.width;34????????printf("height?:?%d,?width?:?%d?\n",?h,?w);35????????circle(image,?ct,?2,?Scalar(0,?0,?255),?2,?8);36????????circle(image,?ct,?(h?+?w)?/?4,?Scalar(255,?0,?0),?2,?8,?0);37????}3839????//?顯示輸出40????imshow("result",?image);41????imwrite("D:/result.png",?image);42????waitKey(0);43????return?0;44}45


希望他會看到,如果看到給我留言知道一下!最后跟大家道歉一下,代碼超過20行了@_@!!!!

天下難事,必作于易

天下大事,必作于細

?推薦閱讀?

OpenCV4系統化學習路線圖-視頻版本!

OpenCV單應性矩陣發現參數估算方法詳解

單應性矩陣應用-基于特征的圖像拼接

OpenCV圖像拼接改進算法之完美拼接

OpenCV | 二值圖像分析的技巧都在這里

OpenCV二值圖像分析之形態學應用技巧

圖像色彩空間與應用轉換

五分鐘學會C++高效圖表繪制神器調用

沒想到圖像直方圖有這么多應用場景

基于灰度共生矩陣(GLCM)的圖像紋理分析與提取

OpenCV中一個最容易搞錯的形態學操作

OpenCV實現皮膚表面粗糙度3D顯示

解密 | OpenCV加載圖像大小是有限制的 ?

總結

以上是生活随笔為你收集整理的空间皮肤代码_不废话,看我20行代码搞定色块提取与定位…….的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。