opencv之霍夫變換圓檢測

2021-09-29 03:19:20 字數 1550 閱讀 5082

霍夫變換就是將平面影象轉換到霍夫空間(極座標)進行特徵計算

圓的幾何標準方程

( x−

a)2+

(y−b

)2=r

2(x-a)^2+(y-b)^2=r^2

(x−a)2

+(y−

b)2=

r2圓的極座標方程

x =a

+rco

s(θ)

x=a+rcos(\theta)

x=a+rc

os(θ)y=

b+rs

in(θ

)y=b+rsin(\theta)

y=b+rs

in(θ

)api

void houghcircles(inputarray image,outputarray circles, int method, double dp, double mindist, double param1=100,double param2=100, int minradius=0, int maxradius=0 )

引數介紹

#include #include #include #include #define pic_path "/home/image/pictures/my_picture/" 

#define pic_name "cell.jpeg"

int main (void)

cv::namedwindow("原始",cv::window_autosize);

cv::imshow("原始",src);

//中值濾波 去除噪點

cv::mat mountput;

cv::medianblur(src,mountput,3);

//轉換為灰度

cv::mat gray_src;

cv::cvtcolor(mountput,gray_src,cv::color_bgr2gray);

cv::namedwindow("灰度",cv::window_autosize);

cv::imshow("灰度",gray_src);

//使用公式 進行圓檢測

cv::mat dst;

vectorcir ;

//引數1 輸入圖

//引數2 輸出陣列

//引數3 檢測型別

//引數4 dp

//引數5 圓到圓心的最小距離

//引數6 邊緣計算高閾值

//引數7 圓心疊加次數

//引數8 最小半徑

//引數9 最大半徑

OpenCV 霍夫變換圓檢測

在直角座標系下,圓的方程表示為 其中,r是圓的半徑,a,b 是圓心座標。那麼換一種表達方式 因為在直角座標系下,圓上的所有點都滿足圓的方程,所以直角座標系下的乙個圓對應到abr座標系下就是乙個點。直角座標系下經過乙個點的所有圓在abr座標系下就是一條三維曲線。那麼,直角座標系下圓上的所有點在abr座...

OpenCV 霍夫線變換 霍夫圓變換

關於霍夫變換在官方文件opencv249裡的描述如下 api如下 void houghlines inputarray image,outputarray lines,double rho,double theta,int threshold,double srn 0,double stn 0 vo...

opencv 霍夫圓變換

參考 1 官方文件api 2 d6 d00 tutorial py root.html 官方英文教程 3 4 高階教程 5 官方英文教程 6 7 8 opencv論壇 9 官方github 10 注 安裝的版本 opencv python 3.3.0 cp36 cp36m win amd64.whl...