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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

OpenCV中霍夫圆检测

發(fā)布時間:2025/3/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenCV中霍夫圆检测 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

OpenCV中霍夫圓檢測

在直線檢測中,變換后在r?θr-\thetar?θ空間內(nèi)曲線交點,然后根據(jù)閾值來得到直線。在圓中需要有三個變量圓心坐標和半徑,因此變換后的空間在三維空間,根據(jù)三維空間中的曲線的交點得到圓。這就是標準的霍夫圓變換。但這個變換涉及到計算量過于巨大,所以很難實際應(yīng)用。
在實際應(yīng)用中常用的是:霍夫梯度法\color{#f00}霍夫梯度法。算法的原理:圓心一定在圓上每個點的模向量上,這些圓上的點的模向量的交點就是圓心,霍夫梯度法的第一步便是找到這些圓心,第二部根據(jù)所有候選中心的的邊緣非零像素對其的支持程度來確定半徑。

感覺太墨跡了,說說個人理解,不一定正確,希望看到的大佬多多指正。霍夫梯度算法:先做邊緣檢測,然后利用邊緣像素的點模向量相交,發(fā)現(xiàn)可能的圓心,然后再根據(jù)有多少個邊緣像素的模向量交于圓心,從而得到最佳的半徑。

API:

HoughCircles(輸入圖像,8位單通道vector<Vec3f>變量,發(fā)現(xiàn)圓的信息(x,y,r)int method(CV_HOUGH_GRADIENT)dp,用來檢測圓心的累加器圖像的分辨率與輸入圖像之比的導(dǎo)數(shù),如dp=2,累加器有輸入圖像一半的寬度和高度。mindist 最短距離-可以分辨是兩個圓的,否則認為時同心圓。太小相鄰的檢測成一個重合的圓,太大,有些就檢測不出來了。param1 傳遞給Canny的高閾值,低的為高閾值的一半。param2 中心累加器閾值-候選圓心,越小檢測到更多根本不存在的圓,越大能通過檢測的圓更加接近完美的圓形。int 最小半徑inti 最大半徑 );

下面是一個小的demo

#include "opencv2/opencv.hpp"using namespace cv; using namespace std;int main(int argc, char *argv[]) {Mat src,dst,temp;RNG rng((unsigned int)time(NULL));src = Mat::zeros(500,500,CV_8UC3);for(int i = 0;i < 5;i++)circle(src,Point(rng.uniform(100,400),rng.uniform(100,400)),rng.uniform(1,100),Scalar(255,255,255),-1);imshow("src",src);cvtColor(src,temp,CV_RGB2GRAY);GaussianBlur(temp,dst,Size(9,9),2,2);vector<Vec3f> circles;HoughCircles(dst,circles,CV_HOUGH_GRADIENT,1,30,200,50,0,0);cout << circles.size() << endl;for(size_t i = 0;i < circles.size();i++){cout << cvRound(circles[i][0]) << "," << cvRound(circles[i][1]) << endl;Point center(cvRound(circles[i][0]),cvRound(circles[i][1]));int radius = cvRound(circles[i][2]);circle(src,center,3,Scalar(0,255,0),-1);circle(src,center,radius,Scalar(rng.uniform(0,255),rng.uniform(0,255),rng.uniform(0,255)),3,8,0);}imshow("back",src);waitKey(0);return 0; }

總結(jié)

以上是生活随笔為你收集整理的OpenCV中霍夫圆检测的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。