OpenCV 霍夫線變換 霍夫圓變換

2021-07-27 22:00:51 字數 1482 閱讀 2253

關於霍夫變換在官方文件opencv249裡的描述如下:

api如下:

void houghlines(inputarray image, outputarray lines, double rho, double theta, int threshold, double srn=0, double stn=0 )

void houghlinesp(inputarray image, outputarray lines, double rho, double theta, int threshold, double minlinelength=0, double maxlinegap=0 )

這裡總結一些自己的理解:

1、標準霍夫變換houghlines輸出的是

two-element vector 

2、累計概率霍夫變換

houghlinesp輸出的是4-element vector

3、兩個函式中共有的第三個和第四個引數,理解如下:

double型別的rho,以畫素為單位的距離精度。

double型別的theta,以弧度為單位的角度精度。

是用來控制檢測精度的,rho通常取值為cv_pi/180;theta通常取值為1;這兩個引數越小精度越高,但是計算速度會降低。

檢測效果如下:

源**如下:

#include #include using namespace cv;

using namespace std;

int main( )

imshow("效果圖", srcimage);

waitkey(0);

return 0;

}

opencv中霍夫圓的檢測還有一些不足的地方,這裡只是簡單的進行測試。

函式輸出檢測出圓的圓心座標和半徑。

效果圖如下:

源**如下:

#include #include using namespace cv;

int main( )

imshow("效果圖", srcimage);

waitkey(0);

return 0;

}

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...

缺點 霍夫圓 霍夫圓變換

對於直線來說,一條直線能有引數極徑級角表示,而對圓來說我們需要三個引數來表示乙個圓 在opencv中,我們常常通過乙個叫 霍夫梯度法 的方法來解決圓變換的問題。霍夫梯度法的原理 1 首先對影象應用邊緣檢測,比如canny邊緣檢測 2 然後對邊緣影象中的每乙個非零點,考慮其區域性梯度,即用sobel函...

缺點 霍夫圓 霍夫變換

霍夫變換是一種特徵提取,被廣泛應用在影象分析 電腦視覺以及數字影像處理。霍夫變換是用來辨別找出物件中的特徵,例如 線條。他的演算法流程大致如下,給定乙個物件 要辨別的形狀的種類,演算法會在引數空間中執行投票來決定物體的形狀,而這是由累加空間 accumulator space 裡的區域性最大值來決定...