霍夫線 圓檢測技術

2021-09-11 03:51:33 字數 2462 閱讀 7481

原理:

霍夫線檢測

標準與多尺度霍夫變換

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

image : 8位單通道二值化影象

lines : 輸出線向量,每個線向量由兩個元素 (r,theta)組成,r為離原點的距離,theta為線旋轉角

rho : 引數極徑 r 以畫素值為單位的解析度,一般使用 1 畫素.

theta : 引數極角 \theta 以弧度為單位的解析度,一般使用 1度 (即cv_pi/180)

threshold : 要」檢測」 一條直線所需最少的的曲線交點

srn :多尺度霍夫變換引數,是乙個距離解析度 r 因子

stn : 多尺度霍夫變換引數,是乙個距離解析度 theta 因子

#include#include"opencv2/highgui/highgui.hpp"

#include"opencv2/opencv.hpp"

using namespace std;

using namespace cv;

int main()

imshow("hough", houghmat);

waitkey(0);

return 0;

}

統計概率霍夫變換

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

image: 8位單通道二值化影象

lines: 輸出線向量,每個線向量由4個元素 (x_1 y_1, x_2, y_2) 組成,也就是線段兩個端點的座標

rho : 引數極徑 r 以畫素值為單位的解析度,一般使用 1 畫素.

theta: 引數極角 \theta 以弧度為單位的解析度,一般使用 1度 (即cv_pi/180)

threshold: 要」檢測」 一條直線所需最少的的曲線交點

minlinlength: 能組成一條直線的最少點的數量,點數量不足的直線將被拋棄,線段的最小長度

maxlinegap:最大的長度,用於線段連線

#include#include"opencv2/highgui/highgui.hpp"

#include"opencv2/opencv.hpp"

using namespace std;

using namespace cv;

int main()

imshow("hough", houghmat);

waitkey(0);

return 0;

}

霍夫圓檢測

void houghcircles( inputarray image, outputarray circles,

int method, double dp, double mindist,

double param1=100, double param2=100,

int minradius=0, int maxradius=0 );

image : 輸入影象矩陣,灰度圖

circles : 包含檢測到的圓的資訊的向量,向量內第乙個元素是圓的橫座標,第二個是縱座標,第三個是半徑大小

methodmethod: 是所使用的圓檢測演算法,目前只有cv_hough_gradient乙個可選

dp : 是累加面與原始影象相比的解析度的反比引數,dp=2時累計面解析度是元素影象的一半,寬高都縮減為原來的一半,dp=1時,兩者相同

mindist : 定義了兩個圓心之間的最小距離

param1 :canny邊緣檢測的高閾值,低閾值被自動置為高閾值的一半

param2 :累加平面對是否是圓的判定閾值

minradius : 檢測到圓的半徑的最小值

maxradius : 檢測到圓的半徑的最大值

#include#include"opencv2/highgui/highgui.hpp"

#include"opencv2/opencv.hpp"

using namespace std;

using namespace cv;

int main()

imshow("circle", src);

waitkey(0);

return 0;

}

霍夫檢測圓 霍夫梯度法

承接上篇博文,在基本搞懂霍夫檢測直線是怎麼進化到檢測圓後,開始 痴心妄想 自己寫 了!雖說最後的效果不是很好,但是重要的是在碼 過程中發現和解決的一些問題 不一定有共性,但兄弟萌可以避免下這些bug 上篇博文已經闡述了我們是如何從三維計數 轉到霍夫梯度法的,該演算法主要分為兩步,先找圓心疑似點,再對...

霍夫變換 線檢測,圓檢測 OpenCV12

原理先留著,日後補上。針對線檢測,一般使用累計概率霍夫變換 houghlinep 函式 檢測速度更快。cv exports w void houghlinesp inputarray image,outputarray lines,double rho,double theta,int thresh...

(22)霍夫圓檢測

霍夫圓檢測 霍夫變換進行圓檢測 幾何中圓心座標和半徑表徵乙個圓,從平面座標到極座標轉換三個引數c x0,y0,r 固定r,在0 360度空間的時候只有x0,y0這兩個變數,就是a跟b,其中x0,y0是圓心,那麼在圓心處有最大值,霍夫空間累計最大值在圓心處 假設平面座標的任意乙個圓上的點,轉換到極座標...