謝 晴
(梧州學院,梧州 543002)
直線是最常見、最基本的幾何特征之一,廣泛存在于自然界和很多人造物中,是大多數物體的邊緣形狀的表現形式。在很多應用中,我們需要利用數字圖像處理技術識別出這些直線特征,以便作為模式識別和圖像分割等后續研究的基礎,比如對航拍圖像中飛機場跑道線的識別等。針對目前大多數生活小區、銀行、交通路口等安裝的固定攝像頭所監控的角度固定、很多地方安裝的太陽能的集熱面板與水平面的夾角都為45°以及寶石刻面琢型中刻面之間的角度固定的實際情況,本文提出一種基于模板濾波的已知角度直線檢測方法。
現有的直線檢測算法主要有兩大類[1]:一類是通過對圖像的處理,得到目標的邊界點集合,然后利用霍夫變換(Hough Transform,以下簡稱Hough變換)提取目標邊界上的直線;另一類是在對圖像預處理后,直接獲取目標的邊界線集合,然后在該集合中進行直線段識別。第一類方法中的Hough變換檢測直線方法是所有直線檢測方法中最經典的方法,該方法具有較強的抗噪能力,對直線斷裂不敏感,具有較高的可靠性和較好的魯棒性。但傳統的Hough變換需要占用較大的內存空間、變換計算量大,因此難以應用于對實時性要求較高的場合,其應用范圍有所限制。第二類直線檢測方法一般是先對目標邊界進行鏈碼跟蹤,然后在得到的鏈碼串集合中進行直線段提取[2]。和Hough變換方法相比,這類方法的優點是計算簡單,
具有較強的實時性,能比較方便地得到線段的長度、方向等信息。但是,現有算法在識別直線時都不考慮直線的角度,其目的是盡量將圖像中的所有直線識別出來,但在某些應用中,我們通常只對一些固定角度的直線感興趣,比如,固定攝像頭所監控的范圍內的直線或航拍圖像中大多數目標的輪廓線與水平面的夾角都是已知的,因此,本文提出基于模板濾波的直線檢測新方法,專門對已知角度直線的檢測進行研究。
基于模板濾波的已知角度直線檢測算法基于空域濾波的原理,即事先定義一個直線檢測模板,在圖像中逐點移動,位于直線上的點將對模板產生較大的響應,設置合適的閾值,認為響應大于閾值的點位于直線上,從而識別出直線段。本文設計的水平直線檢測模板如圖1(a)所示,以水平線檢測模板為例,當水平線檢測模板在圖像上逐點移動時,位于水平直線上的點將對模板產生較大的響應,為了判斷某點是否位于水平直線上,就需要設置一個閾值,也就是模板的輸出門限。本文設計的垂直線、與水平方向呈45°、135°的直線檢測模板如圖1(b)~圖(d)所示。

圖1 直線檢測模板示例
基于模板濾波的已知角度直線檢測算法步驟:1)讀取灰度圖像;
2)根據直線角度,設計直線檢測模板;
3)用直線檢測模板對圖像濾波,設置合適的模板輸出門限,檢測出直線。
可以看出,直線檢測模板的設計是本算法的核心,下面介紹檢測模板的構造方法。
首先根據直線角度計算出直線的斜率k,由斜率確定模板的尺寸,最后設置合適的模板系數。由于直線y=kx+b與y=kx是平行的位置關系,本文以一般直線y=kx的檢測為例討論直線檢測模板的構造方法,步驟如下:
1)由直線角度計算出斜率k;
2)根據斜率k計算出檢測模板的尺寸;
3)確定模板系數。
由于直線斜率取值情況的復雜性,經過反復驗證,本文確定了直線斜率k和直線檢測模板尺寸之間的關系,下面分兩種情況說明:
1)k=n和k=1/n(n為整數)
當直線角度在(0°, 45°)或(135°, 180°)范圍時,檢測模板的行數設為3,列數設+1(|k|表示取斜率k的絕對值);當直線角度在(45°, 90°)或(90°, 135°)范圍時,檢測模板的行數可設為2|k|+1,列數設為3。
2)k=b/a(a、b為整數)
當直線斜率k表示為b/a形式時,可設直線檢測模板的行數為2|b|+1,列數為2|a|+1,其中,|a|和|b|表示取a、b的絕對值。
確定好直線檢測模板的尺寸后,就可以確定模板的系數,依據是要使得模板中所有系數的總和為0,因為圖像中灰度級恒定的區域來自模板的響應應該為零。為了便于描述,本文將位于直線上的像素點稱為關鍵點,關鍵點在模板中的對應系數稱為關鍵系數,其余的系數為非關鍵系數。為了準確的檢測出直線,位于直線上的點對模板的響應要大于直線以外的點,因此,關鍵系數的值應盡可能大于非關鍵系數,故本文將關鍵系數的值設為正數,非關鍵系數的值設為負數,關鍵系數的總和和非關鍵系數的絕對值之和要相等。

圖2 直線y=x

圖3 直線y=x的檢測模板

圖4 實驗結果1

圖5 實驗結果2
限于篇幅,本文列舉以下實驗結果:
從實驗結果可以看出,本文提出的基于模板濾波直線檢測算法檢測效果比較好,和經典的Hough變換檢測直線方法相比,本算法簡單,模板構造方便。從時間方面來說,算法的執行時間短,執行速度快。比如,直線濾波步驟所花費的時間僅0.453秒,直線檢測也只用了0.443秒,均快于Hough變換直線檢測方法;從空間方面來說,由于檢測模板的實質就是一個二維矩陣,其尺寸遠遠小于原始圖像,因此無需太多額外存儲空間,克服了Hough變換檢測直線方法需要占用大量存儲空間的缺陷。
本文提出的基于模板濾波的已知角度直線檢測算法可以快速、準確的檢測出特定角度的直線而忽略對研究問題無用的直線,為需要檢測出特定角度直線的應用領域提供了新的解決途徑和思路。當然,本算法也有不足之處,根據一些特殊角度設置的檢測模板會出現尺寸過大的情況,如何對本算法進行改進,使檢測模板的構造更加簡單,以及如何更加科學、合理的設置模板的輸出門限是今后的一個研究方向。
[1] 毛偉民, 蘆俊, 朱衛良, 胡志川. 基于邊緣檢測的載帶壓痕檢測[J]. 計算機測量與控制. 2010, 18(7).
[2] Bi Y,Zhao J G,Zhang D H.Research On Power Communication Network and Power Quality Monitoring Using OPNET[z].Industrial Electronics and Applications.2007,507-511.