空间皮肤代码_不废话,看我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行代码搞定色块提取与定位…….的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: layui tree 加载慢_图片太多,
- 下一篇: 用python设计数独的心得体会_pyt