标准霍夫变换
標準霍夫變換
- 1. 霍夫變換簡介
- 2. 霍夫線變換
- 2.1. 檢測圖片的條件
- 2.2. 直線的表示
- 2.3. 所有通過點的直線
- 2.4. θ - r 相交
- 2.5. 閾值定義直線
- 3. 霍夫圓變換
1. 霍夫變換簡介
- 目的 :從圖像中分離出具有某種相同特征的幾何形狀
霍夫變換是圖像處理中 從圖像中識別幾何形狀 的基本方法之一
最基本的霍夫變換是從黑白圖像中檢測直線
在圖像處理中可以通過霍夫變換可以快速的檢測出直線或圓
2. 霍夫線變換
霍夫線變換是用來尋找圖片中直線的方法
2.1. 檢測圖片的條件
首先要對圖像進行 邊緣檢測 的處理
也即霍夫線變換的直接輸入只能是 邊緣二值圖像,如下圖:
2.2. 直線的表示
一條直線在圖像二維空間可由兩個變量表示,如:
- 在笛卡爾坐標系:可由參數 斜率 k 和 截距 b 表示:y = kx + b
不過,由于直線的斜率可能為無窮大,或者無窮小
那么在k-b參數空間就不便于對直線進行描述和刻畫 - 在極坐標系:可由參數(r, θ)極徑和極角表示
對于霍夫變換,將用極坐標系來表示直線
參考 y=kx + b,直線的表達式可為:
化簡結果:rrr = xcosθ + ysinθ
一般來說對于點(x0, y0)
可以將通過這個點的一簇直線同一定義為:rrr = x0cosθ + y0sinθ
這就意味著對于每一對(r, θ)代表一條通過點(x0, y0)的直線
2.3. 所有通過點的直線
如果對于一個給定點(x0, y0)
在極坐標對極徑極角平面繪出所有通過它的直線,將得到一條正弦曲線
如對于給定點 x0 = 8 和 y0 = 6,可以繪出下圖:
2.4. θ - r 相交
對圖像中所有點進行上述操作:歷遍 θθθ,得到 rrr,得到所有通過點的直線的表達
如果兩個不同點經過上述操作后得到的曲線在平面 θ?rθ - rθ?r 相交
就意味著 它們可以在同一條直線上
繼續對存在的點 x1=9,y1=4 和 點 x2=12, y2=3 歷遍操作,得到下圖:
這三條曲線在 θ?rθ - rθ?r 平面相交于點(0.925, 9.6)
那么參數對(θ, r)為點(x0, y0),(x1, y1)和(x2, y2)組成的平面內的直線
2.5. 閾值定義直線
一般來講,一條能夠通過在平面 θ?rθ - rθ?r 尋找交于一點的曲線數量檢測
越多曲線交于一點也就意味著這個交點表示的直線由更多的點組成
一般來說可以通過設置直線上點的閾值
來定義多少條曲線交于一點認為檢測到了一條直線
圖像中的每個點對應曲線間的交點,如果交于一點的曲線數量超過了閾值
那么可以認為這個交點所代表的參數對(θ, rθ)在原圖像中為一條直線
3. 霍夫圓變換
霍夫圓變換的基本原理和霍夫線變換類似
只是點對應的二維極徑極角空間被三維的圓心點x、 y及半徑r空間取代
對圓來說,需要三個參數來表示一個圓 C:(X0, Y0, rrr)
(X0, Y0) 表示圓心的位置,rrr 表示半徑
現在原邊緣圖像的任意點(x,y)對應的經過這個點的所有可能圓
圓的數學的數學表達式為:(x - x0)2 +(y - y0)2 = r2
是在三維空間由上面這三個參數來表示了,對應一條三維空間的曲線
與二維的霍夫線變換同樣的道理
對于多個邊緣點越多,這些點對應的三維空間曲線相交于一點
那么經過共同圓的點就越多
類似的可以用同樣的閾值的方法來判斷一個圓是否被檢測到
這就是標準霍夫圓變換的原理
但也正是在三維空間計算量大,標準霍夫圓變化很難被應用到實際中
謝謝!
總結
- 上一篇: http大文件传输
- 下一篇: 通行证漫谈(不断补充)