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