opencv中Hough變換引數詳解

2021-09-11 08:45:11 字數 3379 閱讀 6656

分享一下我老師大神的人工智慧教程。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!

此函式是opencv影象變換函式中的乙個,主要用來訪問霍夫變換的兩個演算法———標準霍夫變換(sht)和累計概率霍夫變換(ppht)。

cvseq* cvhonghlines2(

cvarr* image,

void* line_storage,

int mehtod,

double rho,

double theta,

int threshold,

double param1 =0,

double param2 =0

);image

輸入 8-位元、單通道 (二值) 影象,當用cv_hough_probabilistic方法檢測的時候其內容會被函式改變。

line_storage

檢測到的線段儲存倉.可以是記憶體儲存倉 (此種情況下,乙個線段序列在儲存倉中被建立,並且由函式返回),或者是包含線段引數的特殊型別(見下面)的具有單行/單列的矩陣(cvmat*)。矩陣頭為函式所修改,使得它的 cols/rows 將包含一組檢測到的線段。如果 line_storage 是矩陣,而實際線段的數目超過矩陣尺寸,那麼最大可能數目的線段被返回(線段沒有按照長度、可信度或其它指標排序).

method

hough 變換變數,是下面變數的其中之一:

cv_hough_standard - 傳統或標準 hough 變換. 每乙個線段由兩個浮點數 (ρ, θ) 表示,其中 ρ 是直線與原點(0,0) 之間的距離,θ 線段與 x-軸之間的夾角。因此,矩陣型別必須是 cv_32fc2 type.

cv_hough_probabilistic- 概率 hough 變換(如果影象包含一些長的線性分割,則效率更高). 它返回線段分割而不是整個線段。每個分割用起點和終點來表示,所以矩陣(或建立的序列)型別是 cv_32sc4.

cv_hough_multi_scale - 傳統 hough 變換的多尺度變種。線段的編碼方式與 cv_hough_standard 的一致。

rho

與象素相關單位的距離精度,一般取1

theta

弧度測量的角度精度

threshold

閾值引數。如果相應的累計值大於 threshold, 則函式返回的這個線段.

param1

第乙個方法相關的引數:

對傳統 hough 變換,不使用(0).

對概率 hough 變換,它是最小線段長度.

對多尺度 hough 變換,它是距離精度 rho 的分母 (大致的距離精度是 rho 而精確的應該是 rho / param1 ).

param2

第二個方法相關引數:

對傳統 hough 變換,不使用 (0).

對概率 hough 變換,這個引數表示在同一條直線上進行碎線段連線的最大間隔值(gap), 即當同一條直線上的兩條碎線段之間的間隔小於param2時,將其合二為一。

對多尺度 hough 變換,它是角度精度 theta 的分母 (大致的角度精度是 theta 而精確的角度應該是 theta / param2).

分享一下我老師大神的人工智慧教程。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!

此函式是opencv影象變換函式中的乙個,主要用來訪問霍夫變換的兩個演算法———標準霍夫變換(sht)和累計概率霍夫變換(ppht)。

cvseq* cvhonghlines2(

cvarr* image,

void* line_storage,

int mehtod,

double rho,

double theta,

int threshold,

double param1 =0,

double param2 =0

);image

輸入 8-位元、單通道 (二值) 影象,當用cv_hough_probabilistic方法檢測的時候其內容會被函式改變。

line_storage

檢測到的線段儲存倉.可以是記憶體儲存倉 (此種情況下,乙個線段序列在儲存倉中被建立,並且由函式返回),或者是包含線段引數的特殊型別(見下面)的具有單行/單列的矩陣(cvmat*)。矩陣頭為函式所修改,使得它的 cols/rows 將包含一組檢測到的線段。如果 line_storage 是矩陣,而實際線段的數目超過矩陣尺寸,那麼最大可能數目的線段被返回(線段沒有按照長度、可信度或其它指標排序).

method

hough 變換變數,是下面變數的其中之一:

cv_hough_standard - 傳統或標準 hough 變換. 每乙個線段由兩個浮點數 (ρ, θ) 表示,其中 ρ 是直線與原點(0,0) 之間的距離,θ 線段與 x-軸之間的夾角。因此,矩陣型別必須是 cv_32fc2 type.

cv_hough_probabilistic- 概率 hough 變換(如果影象包含一些長的線性分割,則效率更高). 它返回線段分割而不是整個線段。每個分割用起點和終點來表示,所以矩陣(或建立的序列)型別是 cv_32sc4.

cv_hough_multi_scale - 傳統 hough 變換的多尺度變種。線段的編碼方式與 cv_hough_standard 的一致。

rho

與象素相關單位的距離精度,一般取1

theta

弧度測量的角度精度

threshold

閾值引數。如果相應的累計值大於 threshold, 則函式返回的這個線段.

param1

第乙個方法相關的引數:

對傳統 hough 變換,不使用(0).

對概率 hough 變換,它是最小線段長度.

對多尺度 hough 變換,它是距離精度 rho 的分母 (大致的距離精度是 rho 而精確的應該是 rho / param1 ).

param2

第二個方法相關引數:

對傳統 hough 變換,不使用 (0).

對概率 hough 變換,這個引數表示在同一條直線上進行碎線段連線的最大間隔值(gap), 即當同一條直線上的兩條碎線段之間的間隔小於param2時,將其合二為一。

對多尺度 hough 變換,它是角度精度 theta 的分母 (大致的角度精度是 theta 而精確的角度應該是 theta / param2).

Hough變換在opencv中的應用

霍夫曼變換是一種可以檢測出某種特殊形狀的演算法,opencv中用霍夫曼變換來檢測出影象中的直線 橢圓和其他幾何圖形。由它改進的演算法,可以用來檢測任何形狀的圖形。找到通過足夠多數量的畫素點的所有直線,它分析每個單獨的畫素,並識別出所有的可能經過它的直線。當同一條直線穿過許多點,便意味著這條線的存在足...

Hough變換原理

hough變換原理 一 簡單介紹 hough變換是影象處理中從影象中識別幾何形狀的基本方法之一。hough變換的基本原理在於利用點與線的對偶性,將原始影象空間的給定的曲線通過曲線表達形式變為引數空間的乙個點。這樣就把原始影象中給定曲線的檢測問題轉化為尋找引數空間中的峰值問題。也即把檢測整體特性轉化為...

Hough變換原理

hough變換原理 一 簡單介紹 hough變換是影象處理中從影象中識別幾何形狀的基本方法之一。hough變換的基本原理在於利用點與線的對偶性,將原始影象空間的給定的曲線通過曲線表達形式變為引數空間的乙個點。這樣就把原始影象中給定曲線的檢測問題轉化為尋找引數空間中的峰值問題。也即把檢測整體特性轉化為...