初識霍夫變換——霍夫變換直線檢測原理(Line Detection)

參考博客:

1.Opencv學習筆記-----霍夫變換直線檢測及原理理解

2.霍夫變換檢測直線原理及實例

3.霍夫變換直線檢測(Line Detection)原理及示例

 

 

 

 

霍夫變換(Hough Transform)是圖像處理領域內從圖像中檢測幾何形狀的基本方法之一。經典霍夫變換用來檢測圖像中的直線,後來經過擴展可以進行任意形狀物體的識別。

原理概括:在一個參數空間中,通過計算累計結果的局部最大值,得到一個符合該特定形狀的的集合作爲霍夫變換結果

 

問題1: 在瞭解霍夫變換的具體原理之前,先想一下直線有哪些表現形式

  • 用直角座標系表示:y = k*x + b
  • 用極座標表示:r = x*cosθ + y*sinθ

用直角座標系表示是比較熟悉的一種方式,極座標表示可能沒有那麼清晰,在這裏做一下說明:

第一種方法:

                                                                                

直線表達式爲:

 化簡後得到:

 第二種方法:

                      

ρ和第一種方法中的r是一樣的,都是原點到直線的距離。

其實這兩種方法本質上是一樣的,與直角座標系不同,它們的切入點在於要有個原點到直線的距離的參數,同時,再加上θ角度就可以確定這條直線。也就是說,給定兩個參數: r(原點到直線的距離)和 θ(原點到直線的垂線與x軸的夾角),就代表着一條直線。換句話說就是,直角座標系中的一條直線對應參數方程中的一個點

 

問題2: 瞭解清楚直線的兩種表現方式之後,對理解霍夫變換有什麼幫助嗎?

首先,給定一個點,我們要想找到與此點在同一條直線上的其他點,是否是要將別的點的座標代入,看是否符合過此點的座標公式。這個時候就會出現一個問題,當我們在使用直角座標公式的時候,也就是:y = k*x + b 時,假設當我們所要檢測的點過定點剛好與x軸垂直時,此時的k是趨於無窮大的,無法表示出來,也就是說這種情況沒有辦法計算這個要檢測的點是否與定點在同一條直線上。

所以,霍夫變換要用極座標公式來進行計算,以消除特殊情況的誤差。

再明確一下我們的搜索範圍,想要找到哪些點在過定點的直線上,先明確這些點的範圍,有可能是在過定點的任意直線上,這也是爲什麼不使用直角座標系的原因。此時,繪出過某定點的任意直線的極座標圖像(假設給定點X_0= 8 和Y_0= 6):

                                                                   

如圖所示,將得到一條正弦曲線。在問題1已經說過了,直角座標系中的一條直線對應參數方程中的一個點,只要是在這個直角座標系上的點,它們的 r 和 θ 的值都是固定的,映射到極座標系上自然對應一個固定的點。

而對於直角座標系中的某一點來說,其 r 和 θ 的值不是固定的,因爲過此點的直線可能有很多條,每條的 r 和 θ 值也可能不同,因此,直角座標系中的一個點對應參數方程中的一條曲線

下圖可以直觀的看出兩者的對應關係:

 

問題3: 根據直角座標系(圖像空間)與極座標系(參數空間)中點與直線的對應關係在檢測直線中可以發揮什麼作用呢?
當我們檢測圖像空間中的所有點時,在對應的參數空間中會出現很多條對應的曲線。其中會有許多條曲線相交於一點的情況,結合上個問題得出的結論,直角座標系中的一個點對應參數方程中的一個曲線(過此點的任意直線),當這些參數空間中的曲線有相交的點時,說明過這些點在某 r 和某 θ 值時的直線是重合的,不難推斷出這些點在圖像空間中是存在於一條直線內的。

                                                                 

到此爲止,就將圖像空間中的直線變換成參數空間中的點,可通過統計特性來解決檢測問題。

然而,又出現一個問題,理論上,一個點對應無數條直線,但在實際中這樣很難進行計算。

 

問題4: 如何利用理論解決實際的問題呢?

可以將 r 和 θ 值離散化爲有限個等間距的離散值,離散化後的參數空間就不再是連續的,將會被離散成一個個等大小的網格。

將圖像空間中每個像素點座標值變換到參數空間後,所得值會落在某個網格內,使得該網格的累加計數器加一。當所有的像素點都經過霍夫變換後,可對單元網格進行檢查。在此之前還可對直線上點的數量進行限制,即設置一個閾值,當某單元網格的計數值大於設定的直線閾值時,則認爲是一條直線。

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章