• 沒有找到結果。

霍氏轉換(Hough transform)原理

在文檔中 中 華 大 學 碩 士 論 文 (頁 33-39)

第二章 理論與文獻回顧

2.4 霍氏轉換(Hough transform)原理

圖 2.3、遲滯閥值示意圖[13]

其中直線之斜率為 m ,

( x

1

, y

1

)

為直線上之一點。

e. 斜截式

c mx

y   (2.4-5) 其中( r , )為斜率, c 為直線與y軸相交的截距。

霍氏轉換即建立在斜截式之直線方程式之上,將直線斜率與y軸相交的截距 定義為霍氏轉換後之參數,輸入平面影像上直線的每一點(x, y)經霍氏轉換後在參 數平面上變成了一個特徵點( m ,c)霍氏轉換即為輸入平面與參數平面兩個平面之 間的一對應關係,此關係可將斜截式主客易位後寫出:

y mx

c   

(2.4-5) 其中(x, y)為影像輸入平面的座標,而( m ,c)為影像,經霍氏轉換後之參數平面的 座標。

現在假設輸入影像平面上的一直線

ymxc

,對於一固定的(xi, yj)而言經過霍 氏轉換後我們可以在參數空間找到一條如式的相對應直線。而一條直線是由很多 共線的(xi, yj)所組成,且這些點均滿足

j

i y

x m c1   1

(2.4-6) 由式(2.4-6)可以明顯得知,這條直線經過霍氏轉換後,在參數空間( m ,c)內會有 很多條直線,且在參數空間內的直線數正比於影像空間直線上取的點數,在此有 一重要的特性,就是影像空間直線上取的點數全部代入參數方程式時,在霍氏轉 換後之參數平面即可得同數量之線條,而這些線條會有一個共同交會點:

舉例來說,假設輸入影像平面上的點為(4,36), (5,42), …, (40,252) 共 37 點。將第 一點(4,36)代入參數方程式時,參數方程式可改寫成 c=36-4 m ,當

……

利用第二點 (5,42) 代入參數方程式時,可得參數方程式變成 c=42-5m,當 m =0, c=42 對應之累積陣列 A(0,42) 即增加 1,即 A(0,36)=0+1

m =3, c=27 對應之累積陣列 A(3,27) 即增加 1,即 A(3,24)=0+1 m =6, b=12 對應之累積陣列 A(6,12) 即增加 1,即 A(6,12)=1+1=2

……

當我們將這 37 點全部代入參數方程式時,在霍氏轉換後之參數平面可得 37 條 線,而這些 37 條線會有一個共同交會點 (6,12),參數平面上(6,12)對應之累積陣 列 A(6,12)其累計值為 37,至於參數平面上其他點對應之累積陣列其累計值不是 0 就是 1。因此,我們便可以得知通過上述 37 點之直線方程式,其斜率為 6、以 及直線與 y 軸相交的截距為 12,亦即直線方程式為y  6 x 12。

這些在( m ,c)平面上的直線會共同交會於一點上( m1,c1),如圖所示只要在參數空 間上量取這些直線的共同交點( m1,c1),我們便可以得知輸入直線的斜率m 及與 y 軸交點 c1

假設輸入的圖形為 f(x,y),霍氏轉換函數 F( m ,c)可表示為:∞



f x y y mx c dxdy

c m

F ( , ) ( , ) ( )

(2.4-7) 然而如果使用上述的直線方程式將產生如下的兩個問題:

(一) 輸入影像之垂直直線,斜率趨近於無限大。

(二) 輸入影像之水平直線,截距趨近於無限大。

如此在參數平面上之直線就不會有共同的交點,亦即參數平面上對應之累積 陣列不會大於 1,如此即無法偵測到輸入之影像平面上垂直或水平的直線。霍氏 轉換的方法是將直線以其法線與x軸的夾角 以及直線到原點的最短距離 r 來表 示,其方程式為 :

sin

cos

j

i

y

x

r  

(2.4-8) 在上式中所表示的直線上的每一點(xi, yj),對應於參數空間(r , )中之一條正弦曲

線,分別如圖 2.4(a)和圖 2.4(b)。此參數空間中曲線上的任一點對應於影像空間 中的一條直線,且該直線必通過(xi, yj)這個點。由此可以發現,同一線中任意點 P(x, y)會有一個共同的參數值(r , ),因此將原影像中的共線的特徵點轉換至另 一個空間中時,將會形成相交於( r , )的線段。

圖 2.4、單點的的霍氏轉換示意圖[16];(a)影像空間;(b)參數空間

經過霍氏轉換後,可得( r , )平面之正弦曲線群,我們只要在參數空間( r , ) 內偵測交點的座標值,即可推算影像空間內的直線方程式為何。影像空間中共線 的三個點轉換至參數空間後所對應之三條正弦曲線必交於一點,如圖 2.5(a)和圖 2.5(b)。若影像空間共線之各點轉換至參數空間之正弦曲線皆交於一點,即可判 斷為影像上之直線線段[14-15]。

(a) (b)

(a) (b)

三個線交點的位置上(其他交點都只有兩條線),那麼便將通過這點的曲線所對應 到 x-y 平面上的點找出,亦即可找出三點,此三點便歸類為同一直線,同時,在 紀錄完此線段的點位後,將參數空間的這三點曲線去除,接著再繼續搜尋下一個 極大值,依此迭代到全部像素都歸類為某一直線為止。

在實作上,利用上述方法所得的同ㄧ直線像素,仍需有底下二個條件限制方 可視為同一直線:

(1) 歸屬於同一條線上的像素,其間距不得超過一個事先設定的門檻。

(2) 歸屬於同一條線上的像素,其像素總數要大於一個事先設定的門檻值方 可視為直線。

台灣大學土木系彭念豪網路上發表「二維直線特徵自動化萃取之研究」乙篇 報告[17],對 Hough 影像空間(Image space)轉換至參數空間(Parameter space)之觀 念,有較精簡之說明,提出在參數空間中由群集偵測(Cluster detection)的方式找 出特徵的參數值,再反推回影像空間,則可得到此特徵在影像空間的位置。如圖 2.6。

-2 0 2 4 6 8 10 12

-4 -2 0 2 4 6

0 50 100 150 200 250 300 350

-15 -10 -5 0 5 10 15

(a) (b)

圖 2.6、霍氏轉換示意圖[17]:(a)為影像空間;(b)為參數空間

圖 2.6 中,(a)為影像空間,其中有一直線上具有 4 點已知點及未在直線上之 2 點,而其直線方程式為rxicosyisin (其中r 及 如圖所示),圖(b)為參 數空間利用此 6 點之(x,y)作為參數,而利用( r , )繪圖,則可得到圖(b)的結果,4

r

x y

r

條曲線交於一點,則表示該 4 點落於同一直線,此點之座標即為圖(a)中直線的參 數( r , )。

依照上述邏輯,將某影像上所有之邊界像素座標,於參數空間中繪圖(如圖 2.7(a)),記錄參數空間中每個像素被線條經過之次數,依此作群集偵測,圖中較 白之像素表示被經過的次數多,即該直線參數上具有較多之像素,由此尋找最大 值並在記錄座標( r , )後將該值設為 0(建議應將附近一整塊區域都設為 0,以免 找到相似之直線參數),重覆進行此動作,直到影像中之最大值小於使用者設定 之門檻,完成後之參數空間影像應如圖 2.7(b)所示。

50 100 150 200 250 300

500

1000 1500

2000 2500

3000 3500

4000

4500 5000

50 100 150 200 250 300

500 1000

1500 2000 2500

3000 3500

4000 4500 5000

(a) (b)

圖 2.7、霍氏轉換參數空間影像示意圖[17];(a)參數空間影像;(b)萃取直線參數 後。

將所有之邊界像素與所記錄之直線參數計算點到直線距離,若距離小於設定 之門檻值,則認定該像素屬於此條直線,為考量實際影像中直線特徵並不是真的 一條直線,需給予一容許之誤差,但又不希望有太多雜訊,故距離門檻值一般設 於 1 個 pixel 左右;至此,霍氏轉換完成,非直線邊緣像素被剔除。

在文檔中 中 華 大 學 碩 士 論 文 (頁 33-39)

相關文件