霍夫變換 Hough Transform

2021-07-12 01:20:19 字數 1770 閱讀 1574

霍夫變換的主要作用是從影象中檢測出具有某種相同特徵的幾何形狀,如直線、圓等。

霍夫變換的基本原理:

例如檢測情景為直線檢測。我們知道,在直角座標系下,直線方程表示為y=

k∗x+

b ,其中k,

b 為引數,表示直線的斜率和截距。

那麼,對於直角座標系下的某個特定點(x

0,y0

) ,過該點的任意直線方程為y0

=k∗x

0+b ,也就是說點(x

0,y0

) 確定了乙個直線簇,直線簇由引數k,

b 變數決定。由此可以理解為直角座標系下的乙個點(x

0,y0

) 對應於k−

b 引數空間的一條直線y0

=k∗x

0+b

在以上理論的基礎上,我們考慮,在影象中,如果有多個畫素點位於一條直線上,而每個畫素點對應於引數空間k−

b 的一條直線,而這些直線的共性是相交於一點,該點(k

0,b0

) 就是影象空間中畫素所對應直線的斜率和截距。

因此,我們可以把影象空間中的畫素點轉換為引數空間表示,並通過統計引數空間上的峰值(交點)點來檢測影象空間上的直線,此時每個峰值點對應於影象空間中的一條直線。

實際中,y0

=k∗x

0+b 的直線方程無法表示x=

c 這種形式的直線,因為直線的斜率為無窮大。所以通常引數空間表示採用ρ=

x∗co

sθ+y

∗sin

θ 的形式,引數為

ρ 和

θ ,這樣影象空間中的乙個畫素點對應於ρ−

θ 空間的一條曲線。

這裡列舉乙個實驗例子,左圖為霍夫變換檢測的直線,右圖為canny檢測的邊緣。

基本**如下,

OpenCV 霍夫線變換 霍夫圓變換

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

缺點 霍夫圓 霍夫變換

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

霍夫變換 hough

hough 變換的基本原理在於利用點與線的對偶性,將原始影象空間的給定的曲線通過曲線表達形式變為引數空間的乙個點。這樣就把原始影象中給定曲線的檢測問題轉化為尋找引數空間中的峰值問題。也即把檢測整體特性轉化為檢測區域性特性。比如直線 橢圓 圓 弧線等。二 hough 變換的基本思想 設已知一黑白影象上...