OpenCV學習筆記(八)之霍夫直線變換

2021-10-06 16:13:33 字數 1762 閱讀 9969

老規矩–妹妹鎮樓:

前提條件–邊緣檢測已經完成

平面空間到極座標空間轉換

在影象平面空間上的多個點對映到(r-θ)座標空間中,形成多條曲線。多條曲線有共同的交點,即表明這幾個點在影象平面空間中是共線的。

標準的霍夫變換cv::houghlines從平面座標轉換到霍夫空間,最終輸出是(θ, r)表示極座標空間。

霍夫變換直線概率cv::houghlinesp最終輸出是直線的兩個點(x0, y0, x1, y1)。

cv::

houghlines

( inputarray src,

//輸入影象,必須是8-bit的灰度影象

outputarray lines,

//輸出的極座標表示直線

double rho,

//生成極座標的畫素掃瞄步長

double theta,

//生成極座標的角度步長

int threshold,

//閾值,只有獲得足夠交點的極座標點才能看成是直線

double srn =0,

//是否應用多遲鈍霍夫變換,如果不是設定0表示經典霍夫變換

double stn =0,

//是否應用多遲鈍霍夫變換,如果不是設定0表示經典霍夫變換

double min_theta =0,

//表示角度掃瞄範圍0-180之間

double max_theta = cv_pi

)

cv::

houghlinesp

( inputarray src,

//輸入影象,必須是8-bit的灰度影象

outputarray lines,

//輸出的極座標表示直線

double rho,

//生成極座標的畫素掃瞄步長

double theta,

//生成極座標的角度步長

int threshold,

//閾值,只有獲得足夠交點的極座標點才能看成是直線

double minlinelength=0,

//最小直線長度

double maxlinegap=

0//最大間隔

)

/*****霍夫變換*****/

#include

#include

#include

#include

using

namespace std;

string in_title =

"input image"

;string ou_title =

"output image"

;int

main()

cv::

namedwindow

(ou_title, cv::window_normal)

; cv::

imshow

(ou_title, dst)

; cv::

waitkey(0

);return0;

}

opencv學習之霍夫變換

原理部分參見 標準霍夫變換示例 opencv 1.cpp 定義控制台應用程式的入口點。include stdafx.h include include includeusing namespace cv using namespace std int main imshow 邊緣檢測後的圖 midi...

OPENCV學習之霍夫變換

霍夫線變換 效果圖 關於霍夫變換線變換的詳細介紹 以下是 int main waitkey 0 return 0 效果圖怎麼跟邊緣檢測的圖一樣?line dst,pt1,pt2,scalar 0 0,255 1,line aa 修改scalar 中的值顏色怎麼不改變?霍夫圓變換 void hough...

opencv筆記 霍夫變換

霍夫變化 opencv霍夫變化 opencv中的霍夫直線檢測的函式為houghlines 改進版本的houghlinesp函式 統計概論霍夫直線檢測 void houghlines inputarray image,輸入8 位元 單通道 二值 影象 outputarray lines,輸出的角度和r...