謝 晴
(梧州學(xué)院,梧州 543002)
直線是最常見、最基本的幾何特征之一,廣泛存在于自然界和很多人造物中,是大多數(shù)物體的邊緣形狀的表現(xiàn)形式。在很多應(yīng)用中,我們需要利用數(shù)字圖像處理技術(shù)識別出這些直線特征,以便作為模式識別和圖像分割等后續(xù)研究的基礎(chǔ),比如對航拍圖像中飛機(jī)場跑道線的識別等。針對目前大多數(shù)生活小區(qū)、銀行、交通路口等安裝的固定攝像頭所監(jiān)控的角度固定、很多地方安裝的太陽能的集熱面板與水平面的夾角都為45°以及寶石刻面琢型中刻面之間的角度固定的實(shí)際情況,本文提出一種基于模板濾波的已知角度直線檢測方法。
現(xiàn)有的直線檢測算法主要有兩大類[1]:一類是通過對圖像的處理,得到目標(biāo)的邊界點(diǎn)集合,然后利用霍夫變換(Hough Transform,以下簡稱Hough變換)提取目標(biāo)邊界上的直線;另一類是在對圖像預(yù)處理后,直接獲取目標(biāo)的邊界線集合,然后在該集合中進(jìn)行直線段識別。第一類方法中的Hough變換檢測直線方法是所有直線檢測方法中最經(jīng)典的方法,該方法具有較強(qiáng)的抗噪能力,對直線斷裂不敏感,具有較高的可靠性和較好的魯棒性。但傳統(tǒng)的Hough變換需要占用較大的內(nèi)存空間、變換計(jì)算量大,因此難以應(yīng)用于對實(shí)時性要求較高的場合,其應(yīng)用范圍有所限制。第二類直線檢測方法一般是先對目標(biāo)邊界進(jìn)行鏈碼跟蹤,然后在得到的鏈碼串集合中進(jìn)行直線段提取[2]。和Hough變換方法相比,這類方法的優(yōu)點(diǎn)是計(jì)算簡單,
具有較強(qiáng)的實(shí)時性,能比較方便地得到線段的長度、方向等信息。但是,現(xiàn)有算法在識別直線時都不考慮直線的角度,其目的是盡量將圖像中的所有直線識別出來,但在某些應(yīng)用中,我們通常只對一些固定角度的直線感興趣,比如,固定攝像頭所監(jiān)控的范圍內(nèi)的直線或航拍圖像中大多數(shù)目標(biāo)的輪廓線與水平面的夾角都是已知的,因此,本文提出基于模板濾波的直線檢測新方法,專門對已知角度直線的檢測進(jìn)行研究。
基于模板濾波的已知角度直線檢測算法基于空域?yàn)V波的原理,即事先定義一個直線檢測模板,在圖像中逐點(diǎn)移動,位于直線上的點(diǎn)將對模板產(chǎn)生較大的響應(yīng),設(shè)置合適的閾值,認(rèn)為響應(yīng)大于閾值的點(diǎn)位于直線上,從而識別出直線段。本文設(shè)計(jì)的水平直線檢測模板如圖1(a)所示,以水平線檢測模板為例,當(dāng)水平線檢測模板在圖像上逐點(diǎn)移動時,位于水平直線上的點(diǎn)將對模板產(chǎn)生較大的響應(yīng),為了判斷某點(diǎn)是否位于水平直線上,就需要設(shè)置一個閾值,也就是模板的輸出門限。本文設(shè)計(jì)的垂直線、與水平方向呈45°、135°的直線檢測模板如圖1(b)~圖(d)所示。
圖1 直線檢測模板示例
基于模板濾波的已知角度直線檢測算法步驟:1)讀取灰度圖像;
2)根據(jù)直線角度,設(shè)計(jì)直線檢測模板;
3)用直線檢測模板對圖像濾波,設(shè)置合適的模板輸出門限,檢測出直線。
可以看出,直線檢測模板的設(shè)計(jì)是本算法的核心,下面介紹檢測模板的構(gòu)造方法。
首先根據(jù)直線角度計(jì)算出直線的斜率k,由斜率確定模板的尺寸,最后設(shè)置合適的模板系數(shù)。由于直線y=kx+b與y=kx是平行的位置關(guān)系,本文以一般直線y=kx的檢測為例討論直線檢測模板的構(gòu)造方法,步驟如下:
1)由直線角度計(jì)算出斜率k;
2)根據(jù)斜率k計(jì)算出檢測模板的尺寸;
3)確定模板系數(shù)。
由于直線斜率取值情況的復(fù)雜性,經(jīng)過反復(fù)驗(yàn)證,本文確定了直線斜率k和直線檢測模板尺寸之間的關(guān)系,下面分兩種情況說明:
1)k=n和k=1/n(n為整數(shù))
當(dāng)直線角度在(0°, 45°)或(135°, 180°)范圍時,檢測模板的行數(shù)設(shè)為3,列數(shù)設(shè)+1(|k|表示取斜率k的絕對值);當(dāng)直線角度在(45°, 90°)或(90°, 135°)范圍時,檢測模板的行數(shù)可設(shè)為2|k|+1,列數(shù)設(shè)為3。
2)k=b/a(a、b為整數(shù))
當(dāng)直線斜率k表示為b/a形式時,可設(shè)直線檢測模板的行數(shù)為2|b|+1,列數(shù)為2|a|+1,其中,|a|和|b|表示取a、b的絕對值。
確定好直線檢測模板的尺寸后,就可以確定模板的系數(shù),依據(jù)是要使得模板中所有系數(shù)的總和為0,因?yàn)閳D像中灰度級恒定的區(qū)域來自模板的響應(yīng)應(yīng)該為零。為了便于描述,本文將位于直線上的像素點(diǎn)稱為關(guān)鍵點(diǎn),關(guān)鍵點(diǎn)在模板中的對應(yīng)系數(shù)稱為關(guān)鍵系數(shù),其余的系數(shù)為非關(guān)鍵系數(shù)。為了準(zhǔn)確的檢測出直線,位于直線上的點(diǎn)對模板的響應(yīng)要大于直線以外的點(diǎn),因此,關(guān)鍵系數(shù)的值應(yīng)盡可能大于非關(guān)鍵系數(shù),故本文將關(guān)鍵系數(shù)的值設(shè)為正數(shù),非關(guān)鍵系數(shù)的值設(shè)為負(fù)數(shù),關(guān)鍵系數(shù)的總和和非關(guān)鍵系數(shù)的絕對值之和要相等。
圖2 直線y=x
圖3 直線y=x的檢測模板
圖4 實(shí)驗(yàn)結(jié)果1
圖5 實(shí)驗(yàn)結(jié)果2
限于篇幅,本文列舉以下實(shí)驗(yàn)結(jié)果:
從實(shí)驗(yàn)結(jié)果可以看出,本文提出的基于模板濾波直線檢測算法檢測效果比較好,和經(jīng)典的Hough變換檢測直線方法相比,本算法簡單,模板構(gòu)造方便。從時間方面來說,算法的執(zhí)行時間短,執(zhí)行速度快。比如,直線濾波步驟所花費(fèi)的時間僅0.453秒,直線檢測也只用了0.443秒,均快于Hough變換直線檢測方法;從空間方面來說,由于檢測模板的實(shí)質(zhì)就是一個二維矩陣,其尺寸遠(yuǎn)遠(yuǎn)小于原始圖像,因此無需太多額外存儲空間,克服了Hough變換檢測直線方法需要占用大量存儲空間的缺陷。
本文提出的基于模板濾波的已知角度直線檢測算法可以快速、準(zhǔn)確的檢測出特定角度的直線而忽略對研究問題無用的直線,為需要檢測出特定角度直線的應(yīng)用領(lǐng)域提供了新的解決途徑和思路。當(dāng)然,本算法也有不足之處,根據(jù)一些特殊角度設(shè)置的檢測模板會出現(xiàn)尺寸過大的情況,如何對本算法進(jìn)行改進(jìn),使檢測模板的構(gòu)造更加簡單,以及如何更加科學(xué)、合理的設(shè)置模板的輸出門限是今后的一個研究方向。
[1] 毛偉民, 蘆俊, 朱衛(wèi)良, 胡志川. 基于邊緣檢測的載帶壓痕檢測[J]. 計(jì)算機(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.