標準霍夫變換


1. 霍夫變換簡介

  • 目的 :從圖像中分離出具有某種相同特徵的幾何形狀

霍夫變換是圖像處理中 從圖像中識別幾何形狀 的基本方法之一
最基本的霍夫變換是從黑白圖像中檢測直線
在圖像處理中可以通過霍夫變換可以快速的檢測出直線或圓


2. 霍夫線變換

霍夫線變換是用來尋找圖片中直線的方法


2.1. 檢測圖片的條件

首先要對圖像進行 邊緣檢測 的處理
也即霍夫線變換的直接輸入只能是 邊緣二值圖像,如下圖:

在這裏插入圖片描述


2.2. 直線的表示

一條直線在圖像二維空間可由兩個變量表示,如:

  • 在笛卡爾座標系:可由參數 斜率 k 和 截距 b 表示:y = kx + b
    不過,由於直線的斜率可能爲無窮大,或者無窮小
    那麼在k-b參數空間就不便於對直線進行描述和刻畫
  • 在極座標系:可由參數(r, θ)極徑和極角表示
    在這裏插入圖片描述
    對於霍夫變換,將用極座標系來表示直線
    參考 y=kx + b,直線的表達式可爲:
    在這裏插入圖片描述
    化簡結果:rr = xcosθ + ysinθ

一般來說對於點(x0, y0
可以將通過這個點的一簇直線同一定義爲:rr = x0cosθ + y0sinθ
這就意味着對於每一對(r, θ)代表一條通過點(x0, y0)的直線


2.3. 所有通過點的直線

如果對於一個給定點(x0, y0
在極座標對極徑極角平面繪出所有通過它的直線,將得到一條正弦曲線
如對於給定點 x0 = 8 和 y0 = 6,可以繪出下圖:
在這裏插入圖片描述


2.4. θ - r 相交

對圖像中所有點進行上述操作:歷遍 θθ,得到 rr,得到所有通過點的直線的表達

如果兩個不同點經過上述操作後得到的曲線在平面 θrθ - r 相交
就意味着 它們可以在同一條直線上

繼續對存在的點 x1=9,y1=4 和 點 x2=12, y2=3 歷遍操作,得到下圖:

在這裏插入圖片描述
這三條曲線在 θrθ - r 平面相交於點(0.925, 9.6)
那麼參數對(θ, r)爲點(x0, y0),(x1, y1)和(x2, y2)組成的平面內的直線


2.5. 閾值定義直線

一般來講,一條能夠通過在平面 θrθ - r 尋找交於一點的曲線數量檢測
越多曲線交於一點也就意味着這個交點表示的直線由更多的點組成

一般來說可以通過設置直線上點的閾值
來定義多少條曲線交於一點認爲檢測到了一條直線

圖像中的每個點對應曲線間的交點,如果交於一點的曲線數量超過了閾值
那麼可以認爲這個交點所代表的參數對(θ, rθ)在原圖像中爲一條直線


3. 霍夫圓變換

霍夫圓變換的基本原理和霍夫線變換類似
只是點對應的二維極徑極角空間被三維的圓心點x、 y及半徑r空間取代

對圓來說,需要三個參數來表示一個圓 C:(X0, Y0, rr)
(X0, Y0) 表示圓心的位置,rr 表示半徑

現在原邊緣圖像的任意點(x,y)對應的經過這個點的所有可能圓
圓的數學的數學表達式爲:(x - x0)2 +(y - y0)2 = r2
是在三維空間由上面這三個參數來表示了,對應一條三維空間的曲線

與二維的霍夫線變換同樣的道理
對於多個邊緣點越多,這些點對應的三維空間曲線相交於一點
那麼經過共同圓的點就越多

類似的可以用同樣的閾值的方法來判斷一個圓是否被檢測到
這就是標準霍夫圓變換的原理
但也正是在三維空間計算量大,標準霍夫圓變化很難被應用到實際中


謝謝!

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