• 沒有找到結果。

將灰階化後的影像進行邊緣偵測,偵測出影像中的物件邊緣後,再對其影像二值 化,其物件邊緣經二值化後的像素點,就稱為特徵點,將影像中的特徵點代入直線方程 式如式(3.1),其中(x,y)為影像座標點,(m,b)為直線方程式的參數,m為直線斜率,b 為直線與 y 軸的截距。

b mx

y  (3.1)

假設有一點特徵點在橫軸為x,縱軸為 y 的直角座標系上,也就是歐基里德空間 (Euclidean space)中,其座標位置設為A(1,2),則將A(1,2)代入式(3.1)的直線方程式中,

整理後可得式(3.2),即能得到一條由(m,b)參數組成的直線方程式。

m

b 2 (3.2)

而由參數所組成的直角座標也就是橫軸為m,縱軸為b的空間時,就稱為參數空間 (Parameter space)。將點A(1,2)求出的直線方程式,在參數空間上繪出,即可得到 A 點所 對應的線條 L ,相對在參數空間上有一個點 B 的時候,在歐基里德空間上則會畫出一條 線,如圖 3.1 所示。

圖 3. 1、霍夫轉換示意圖

而所有經過 A 點的線條都會在參數空間上繪成一個點,所以也可稱 A 點為所有經過的線 條所成的集合,而由歐基里德空間轉換至參數空間的過程就稱為霍夫轉換。直線方程式 中,當有垂直直線的情況發生時,則斜率m會有無限大的狀況。因此,霍夫轉換的直線 偵測中就是為了防止直線斜率無限大的狀況發生,而變更了直線方程式的表示方式,也 就是將原本直線方程式的參數(m,b)改以(r,)的方式來表示,如式(3.3)。所以霍夫轉換 直線偵測主要是將歐基里德空間的直線方程式中的參數(m,b)以(r,)來表示,如圖 3.2,

其中 r 為直線到原點的垂直距離, 為 r 與x軸正方向的夾角。

 sin cos y x

r  (3.3)

霍夫轉換做法是先透過邊緣偵測,二值化…等影像處理找出影像的特徵點,再將每 個特徵點代入霍夫轉換公式,在參數空間中繪出其特徵點轉換後的線條,而由直線方程 式轉換後產生的是直線線條,但以霍夫轉換直線偵測的方程式以(r,)來表示時,將會 是一條曲線線條,其表示範圍是在0~2 之間。在歐基里德空間中設一個特徵點 A ,在 參數空間上可以描繪出一條曲線,若在參數空間上產生一點 B 時,則在歐基里德空間上 將產生一條直線線條,如圖 3.3 所示,所以在參數空間上將會有影像中所有特徵點所產 生的所有曲線。根據每條曲線交叉重疊的點來累積並記錄曲線交叉的重疊次數,也就是 做投票(Voting)動作。找出投票數最高也就是累積次數最多的那一點記錄其(r,)座標,

該累積次數最多的即最可能為影像中的直線,如圖 3.4 所示。將所有高過一定累積次數 的(r,)座標代回公式(3.3),即可繪出影像中所求的直線。

圖 3. 3、直線霍夫轉換示意圖

圖 3. 4、直線霍夫轉換投票示意圖 而霍夫轉換直線偵測的步驟如下:

1. 先求出邊緣偵測及二値化後所得到的特徵點,也就是影像的座標點。

2. 設定 值的角度範圍,假設為0 180~ 。

3. 將 值與座標點代入公式(3.3),依據不同 值,所求的 r 值也會不同。

4. 記錄計算後得到的 r 值並累計,也就是投票。

5. 設門檻値對投票數做判斷,當投票數大於或等於設定門檻時,便記錄該組(r,) 座標並帶回公式(3.3),得到一條直線方程式,即能在原影像中繪出直線。

相關文件