田國富,,宋江波
(沈陽工業(yè)大學(xué) 機械工程學(xué)院,遼寧 沈陽 110870)
摘要: 針對傳統(tǒng)的邊緣檢測算子對噪聲敏感問題,,提出了一種基于多尺度多結(jié)構(gòu)元素形態(tài)學(xué)邊緣檢測算子,。該算子在傳統(tǒng)形態(tài)學(xué)邊緣檢測的基礎(chǔ)上,通過改變結(jié)構(gòu)元素的形狀和尺度,,在很好抑制噪聲的前提下,,實現(xiàn)圖像精細邊緣提取。MATLAB仿真結(jié)果表明,該邊緣檢測算子具有更強的去噪能力,,定位準確,,保留了更多的圖像細節(jié),優(yōu)于傳統(tǒng)的邊緣檢測算子,。
關(guān)鍵詞:數(shù)學(xué)形態(tài)學(xué),;多尺度多結(jié)構(gòu)元素;邊緣檢測
0引言
圖像最基本的特征是邊緣,,它包含著大量的圖像信息,,因此對圖像邊緣進行完整、精準的檢測在圖像處理過程中有著非常重要的意義,。圖像邊緣檢測就是定位和提取邊緣信息,,為圖像分析、目標識別和機器視覺等做前期準備[1],。由于噪聲對圖像邊緣檢測帶來的不利影響,,在邊緣檢測過程中會丟失大量的圖像細節(jié)信息,因此圖像處理的基本問題就是在盡可能降低噪聲干擾的同時提高檢測精度,。
傳統(tǒng)的邊緣檢測算子起步比較早,,如Roberts算子、Sobel算子,、Canny算子等一階微分算子,,以及Laplacian算子、LOG(高斯—拉普拉斯)算子等二階微分算子,。這些算法大多是在以要處理像素為中心的鄰域中進行灰度分析,,實現(xiàn)對圖像邊緣的提取[2],,計算簡單,,實時性好,有良好的邊緣檢測性,。但由于微分運算的性質(zhì),,對噪聲比較敏感,抗噪聲性能差,,提取的邊緣不夠精細,,因此在實際應(yīng)用中受到限制[3]。近年來,,很多學(xué)者提出了基于數(shù)學(xué)形態(tài)學(xué)的邊緣檢測算法,,在此基礎(chǔ)上,本文針對單一尺度的結(jié)構(gòu)元素容易導(dǎo)致在對目標圖像進行邊緣提取時定位不夠準確,、邊緣信息丟失、去噪效果達不到預(yù)期要求等問題,,提出了一種基于多尺度多結(jié)構(gòu)元素的形態(tài)學(xué)邊緣檢測算法,。
1數(shù)學(xué)形態(tài)學(xué)基礎(chǔ)
數(shù)學(xué)形態(tài)學(xué)是建立在數(shù)學(xué)理論之上的新興學(xué)科,,理論基礎(chǔ)是集合論,基本運算是像素間的邏輯關(guān)系而非代數(shù)關(guān)系,。其基本思想是:用一個具有一定形狀的結(jié)構(gòu)元素去度量和提取圖像中的對應(yīng)形狀以達到對圖像進行分析和識別的目的[4],。
數(shù)學(xué)形態(tài)學(xué)可以去除目標圖像中不相關(guān)的形態(tài)結(jié)構(gòu)屬性,而保留本質(zhì)的結(jié)構(gòu)屬性,,達到簡化圖像數(shù)據(jù)的目的,。目前,數(shù)學(xué)形態(tài)學(xué)已廣泛應(yīng)用于機器視覺,、顯微圖像分析,、醫(yī)學(xué)處理等領(lǐng)域 [5]。
1.1數(shù)學(xué)形態(tài)學(xué)的基本運算
數(shù)學(xué)形態(tài)學(xué)基本運算主要有膨脹,、腐蝕,、開、閉運算,,開運算和閉運算都是由膨脹和腐蝕運算組合而成,。
設(shè)b(m,n)是結(jié)構(gòu)元素,f(x,y)為輸入的灰度圖像,,b的定義域為Db,,f的定義域為Df,則結(jié)構(gòu)元素b對灰度圖像f的形態(tài)學(xué)運算如下:
?。?)形態(tài)學(xué)膨脹運算
圖像f被b膨脹,,記作f⊕b,定義為:
f⊕b=max{f(x-m,y-n)+b(m,n)
|(x-m,y-n)∈Df;(m,n)∈Db} (1)
?。?)形態(tài)學(xué)腐蝕運算
圖像f被b腐蝕,,記作fΘb,定義為:
fΘb=min{f(x+m,y+n)-b(m,n)
|(x+m,y+n)∈Df;(m,n)∈Db}(2)
?。?)形態(tài)學(xué)開運算
圖像f被b腐蝕后再用b來膨脹腐蝕結(jié)果,,記作fb,定義為:
fb=f(x,y)Θb(m,n)⊕b(m,n)(3)
(4)形態(tài)學(xué)閉運算
圖像f被b膨脹后再用b來腐蝕膨脹結(jié)果,,記作f·b,,定義為:
f·b=f(x,y)⊕b(m,n)Θb(m,n)(4)
1.2形態(tài)學(xué)濾波
數(shù)字圖像的噪聲主要來源于圖像的獲取和傳輸過程,對圖像邊緣檢測產(chǎn)生不利的影響,。因此在對圖像進行邊緣檢測之前必須對其進行平滑處理,,去除噪聲的影響[6]。常用的圖像去噪方法有中值濾波,、小波去噪,、數(shù)學(xué)形態(tài)學(xué)濾波等。
數(shù)學(xué)形態(tài)學(xué)中,由于開運算可以去除比結(jié)構(gòu)元素更小的明亮細節(jié),,閉運算可以去除比結(jié)構(gòu)元素更小的暗細節(jié),,所以它們經(jīng)常組合在一起用來平滑圖像并去除噪聲[7]。但由于閉運算的擴展性和開運算的反擴展性使得兩者單獨使用時并不能獲得良好的濾波效果,,因此本文采用兩者的均值來實現(xiàn)噪聲圖像的平滑處理,。假設(shè)經(jīng)過去噪之后的圖像用Filter來表示,則公式表示如下:
Filter1={[(f⊕b)Θb]Θb}⊕b=(f·b) b(5)
Filter2={[(fΘb)⊕b]⊕b}Θb=(f b)·b(6)
Filter=12(Filter1+Filter2)
=1/2[(f·b) b]+[(f b)·b](7)
2數(shù)學(xué)形態(tài)學(xué)邊緣檢測算法及其改進
2.1數(shù)學(xué)形態(tài)學(xué)邊緣檢測算法
對上文介紹的形態(tài)學(xué)的基本運算進行組合,,便可得到基本的形態(tài)學(xué)邊緣檢測算子的數(shù)學(xué)表達式,,設(shè)E為邊緣圖像。
若采用膨脹運算,,則邊緣檢測算子為:
E1(x,y)=f(x,y)⊕b(m,n)-f(x,y)(8)
若采用腐蝕運算,,則邊緣檢測算子為:
E2(x,y)=f(x,y)-f(x,y)Θb(m,n)(9)
若采用膨脹腐蝕復(fù)合運算,則邊緣檢測算子為:
E3(x,y)=f(x,y)⊕b(m,n)-f(x,y)Θb(m,n)(10)
由于形態(tài)邊緣檢測算子都屬于非線性差分算子,,因此對噪聲都比較敏感,,而且檢測出的邊緣與結(jié)構(gòu)元素b緊密相關(guān)。利用數(shù)學(xué)形態(tài)學(xué)腐蝕和開運算組成的邊緣檢測器可以抑制圖像中的峰值噪聲,,而利用數(shù)學(xué)形態(tài)學(xué)膨脹和閉運算可以抑制圖像中的低谷噪聲,。因此對上述形態(tài)學(xué)邊緣檢測算子改進后得到抗噪型邊緣檢測算子。
(1)抗噪膨脹型:
E4(x,y)=[f(x,y)b(m,n)]⊕b(m,n)-
?。踗(x,y)b(m,n)]·b(m,n)(11)
(2)抗噪腐蝕型:
E5(x,y)=[f(x,y)·b(m,n)]b(m,n)-
?。踗(x,y)·b(m,n)]Θb(m,n)(12)
(3)抗噪膨脹腐蝕型:
E6(x,y)=[f(x,y)b(m,n)]⊕b(m,n)-
[f(x,y)·b(m,n)]Θb(m,n)(13)
2.2多結(jié)構(gòu)元素邊緣檢測算法
上述式(11)~(13)介紹的改進的數(shù)學(xué)形態(tài)學(xué)邊緣檢測算子可以很好地去除噪聲和保持邊緣細節(jié),,很大程度上減少了對噪聲的敏感程度,,但各算子均使用單一結(jié)構(gòu)元素,因此檢測到的邊緣比較弱,、不連續(xù),,而且很難檢測出復(fù)雜形狀的邊緣。文獻[8]針對以上問題提出了基于多結(jié)構(gòu)元素的邊緣檢測算法,,公式如下:
E7(x,y)=[f(x,y)Θb1(m,n)⊕b2(m,n)]⊕
b3(m,n)-[f(x,y)⊕b1(m,n)Θb2(m,n)]Θb3(m,n)(14)
結(jié)構(gòu)元素b1,、b2、b3均采用單一尺度3×3的方形結(jié)構(gòu)元素,分別對原圖像和噪聲圖像采用文獻[8]算法進行邊緣檢測,。仿真試驗結(jié)果如圖1所示,。
上圖中,(a)為原圖像,,(b),、(c)、(d)分別為采用文獻[8]的檢測算法對原圖像,、密度0.02的噪聲圖像,、密度為0.05的噪聲圖像提取邊緣的結(jié)果,。對于文獻[8]提出的多結(jié)構(gòu)元素的邊緣檢測算法,b1,、b2,、b3均采用單一尺度的結(jié)構(gòu)元素。由仿真結(jié)果可以看出,,圖像沒有添加椒鹽噪聲時,檢測到的圖像邊緣清晰,,保留了圖像的邊緣細節(jié),,當添加噪聲之后,雖檢測出的圖像邊緣較平滑,,但圖像中混有噪聲點,,并且通過仿真試驗可知隨著噪聲密度的增大,邊緣圖像中的噪聲點將越來越多,,當噪聲點多到一定程度之后,,就會與圖像邊緣粘黏在一起,形成偽邊緣,,導(dǎo)致不能準確地檢測圖像的輪廓邊緣,。
2.3多尺度多結(jié)構(gòu)元素邊緣檢測算法
本文結(jié)合式(13)提出另一種抗噪膨脹腐蝕型邊緣檢測算子:圖2各算法邊緣檢測結(jié)果對比
E8(x,y)=[f(x,y)·b(m,n)]⊕b(m,n)-
[f(x,y)b(m,n)]Θb(m,n)(15)
對其改進得到多結(jié)構(gòu)元素的邊緣檢測算子:
E9(x,y)=[f(x,y)⊕b1(m,n)Θ
b2(m,m)]⊕b3(m,n)-[f(x,y)Θ
b1(m,n)⊕b2(m,n)]Θb3(m,m)(16)
由于用較小尺寸的結(jié)構(gòu)元素對圖像進行處理,,能較好地保護圖像的細節(jié),,也可以濾除一定尺寸的噪聲;反之,,用較大尺寸的結(jié)構(gòu)元素對圖像進行處理時,,能濾除較大尺寸的噪聲,但也會損失更多的圖像細節(jié),。針對不同尺度結(jié)構(gòu)元素的優(yōu)缺點,,本文結(jié)合式(14)、(16)對文獻[8]的多結(jié)構(gòu)元素邊緣檢測算子進行改進,,提出先用較大結(jié)構(gòu)元素b1和b2對圖像進行開,、閉運算處理,然后用小尺度結(jié)構(gòu)元素b3對圖像做膨脹和腐蝕操作,。取結(jié)構(gòu)元素b1,、b2為不同尺度平坦的圓形結(jié)構(gòu)元素,半徑分別為2和3,,b3為R=1的菱形結(jié)構(gòu)元素,,得到一種多尺度多結(jié)構(gòu)元素形態(tài)學(xué)邊緣檢測算子為:
E(x,y)=1/2{[f(x,y)Θb1(m,n)⊕b2(m,n)]
⊕b3(m,n)-[f(x,y)⊕b1(m,n)Θb2(m,n)]
Θb3(m,n)+[f(x,y)⊕b1(m,n)Θb2(m,n)]
⊕b3(m,n)-[f(x,y)Θb1(m,n)⊕b2(m,n)]
Θb3(m,n)}(17)
3試驗分析
為驗證本文提出的基于多尺度多結(jié)構(gòu)元素算法的有效性,將其與Canny邊緣檢測算法,、Sobel邊緣檢測算法和一般抗噪型邊緣檢測算法(式(13))進行對比,,用MATLAB對Lenna圖像和添加噪聲的Lenna圖像,、Rice圖像進行仿真。
本文圖像邊緣檢測算法步驟如下:
(1)輸入Lenna,、Rice灰度圖像,,添加噪聲(密度為0.05的椒鹽噪聲)。
(2)用本文式(7)的方法對加入噪聲的圖像進行開—閉濾波運算,,開,、閉運算均采用3×3的方形結(jié)構(gòu)元素。
(3)利用公式(17)對經(jīng)過濾波處理后的圖像進行邊緣提取,。其中,,b1和b2分別是半徑為2和3的平坦的圓形結(jié)構(gòu)元素,b3為R=1的菱形結(jié)構(gòu)元素[9],。
實驗結(jié)果如圖2所示,。
由以上檢測結(jié)果可以看出,對于Lenna圖像,,無噪聲情況下,,傳統(tǒng)的Sobel算子出現(xiàn)了很多的邊緣斷裂現(xiàn)象,Canny算子檢測出過多的邊緣細節(jié),,而一般的抗噪型邊緣檢測算子(式(13))和本文的算法檢測的輪廓邊緣清晰,,連貫性較好。對于添加噪聲之后的Lenna圖像,,傳統(tǒng)的Sobel與Canny算子檢測結(jié)果出現(xiàn)很大的噪聲,,不能清楚地觀察到圖像邊緣。一般的抗噪型邊緣檢測算子雖然抵抗噪聲能力比較強,,但邊緣出現(xiàn)了很多缺口,,平滑度達不到要求。對于Rice圖像,,由于其邊緣輪廓比較簡單,,無噪聲情況下,幾種檢測算子都顯示出不錯的邊緣檢測結(jié)果,。但添加噪聲之后,,Sobel算子已經(jīng)完全不能識別圖像的邊緣,Canny算子不能準確地定位圖像輪廓邊緣,,產(chǎn)生很多偽邊緣,。一般的抗噪型算子邊緣不連貫,出現(xiàn)很多的缺口,,平滑度也不夠好,。本文提出的算法,不管是對原圖像還是添加噪聲的圖像,,都顯示出很好的邊緣檢測性能,,邊緣定位準確,,輪廓清晰完整,邊緣細節(jié)更加豐富,。分別對Lenna圖像和Rice圖像的檢測,,也充分說明了本文檢測算法的普遍性和實用性。
4結(jié)束語
本文針對傳統(tǒng)的邊緣檢測算子抗噪能力差的特點,,從數(shù)學(xué)形態(tài)學(xué)的基本思想出發(fā),,通過對單一尺寸或形狀結(jié)構(gòu)元素的邊緣檢測算法分析與改進,提出了多尺度多結(jié)構(gòu)元素邊緣提取算法,,通過仿真結(jié)果驗證,,本文算法可在抑制噪聲的同時,有效地提取圖像的邊緣,,且提取的邊緣定位精度高,平滑度好,,邊緣細節(jié)保持也比較完整,,充分驗證了本文算法的優(yōu)越性。
參考文獻
?。?] 范立南,韓曉微,王忠石,等. 基于多結(jié)構(gòu)元的噪聲污染灰度圖像邊緣檢測研究[J]. 武漢大學(xué)學(xué)報(工學(xué)版),2003,36(3):8690.