沈德海等
摘 要: 針對邊緣檢測算法存在的檢測精度與抑噪的矛盾,提出一種基于新的圖像邊緣檢測算法。算法將檢測窗口按照0?,45?,90?和135?四個不同方向分別劃分為兩個子區(qū)域,先統(tǒng)計每個檢測窗口(3×3)內(nèi)脈沖噪聲點的個數(shù),如果超過3個,則擴大檢測窗口至5×5。對于檢測窗口每個方向劃分的兩個子區(qū)域,分別計算區(qū)域內(nèi)的非噪聲點的平均灰度值,利用平均值差的絕對值作為窗口的方向梯度值,進而求得中心點的梯度。然后,對梯度圖像采用改進的非極大值抑制方法進行細(xì)化,并提取邊緣。實驗結(jié)果表明,該算法檢測的圖像邊緣方向性較強,邊緣較細(xì),不僅對不同程度脈沖噪聲干擾圖像具有較強的抑噪能力,而且對高斯噪聲也具有一定程度的抑制效果,算法具有較強的適應(yīng)性。
關(guān)鍵詞: 邊緣檢測; 噪聲圖像; 分區(qū); 自適應(yīng)
中圖分類號: TN911.73 文獻標(biāo)識碼: A 文章編號: 1004?373X(2015)08?0001?03
Subzone mean adaptive edge detection algorithm for noisy images
SHEN De?hai, HOU Jian, E Xu, ZHANG Long?chang
(College of Information Science and Technology, Bohai University, Jinzhou 121013, China)
Abstract: In view of contradiction between detection accuracy and noise suppression of edge detection algorithm, a new edge detection algorithm is proposed. In the algorithm, the detection window is divided into two subzones in each direction of 0?, 45?, 90? and 135?. The number of pulse noise points in detection window of 3×3 is counted. If the point number is more than 3, the detection window size is extended to 5×5. For two subzones in each direction of detection window, the mean gray value of non?noise points in every subzone is calculated respectively. The absolute value of the two mean values′ difference is taken as direction gradient value to acquire the gradient of center point, and then the improved non?maximum suppression method is used to refine gradient image and extract the image edge. The experiment results show that directionality of the image edge detected by the new algorithm is well and the edge is fine, and the algorithm can suppress different degree impulse noise and has a certain suppression effect on Gaussian noise and strong adaptability.
Keywords: edge detection; noisy image; subzone; adaptability
圖像邊緣是圖像灰度變化最為顯著的區(qū)域[1],包含了大量有價值的信息,是圖像特征提取、圖像分割及圖像識別等的重要依據(jù)和基礎(chǔ)。邊緣檢測就是確定邊緣位置,提取圖像的邊緣框架,為后續(xù)工作提供關(guān)鍵的要素圖,檢測結(jié)果的精確度和細(xì)化程度對后續(xù)工作影響非常大。由于數(shù)字圖像在成像、編碼及傳輸?shù)忍幚磉^程中可能受到各種因素干擾而產(chǎn)生噪聲,進而影響到圖像邊緣檢測的效果。傳統(tǒng)的邊緣檢測算法分為兩類,一類是基于空間域的算法,如Roberts算子[2]、Sobel算子[3]、Prewitt算子[4]、LoG算子[5]等,這些算法直接對圖像進行邊緣檢測,沒有抑制噪聲過程,對噪聲較為敏感。另一類是基于空間頻率域的算法,典型代表是基于小波理論及相應(yīng)改進算法[6],對于噪聲圖像具有一定的抑制能力,但對噪聲干擾較嚴(yán)重的圖像,檢測效果不佳。近年來,一些新的算法被提出來,如數(shù)學(xué)形態(tài)學(xué)算法[7]、神經(jīng)網(wǎng)絡(luò)算法[8] 、粗糙集算法[9]及遺傳算法[10]等,這些新算法對噪聲圖像的邊緣檢測取得了較好的效果,但也存在著各自的問題,如算法復(fù)雜、實時性差等,適應(yīng)性較差。
本文提出一種分區(qū)均值梯度的自適應(yīng)噪聲圖像邊緣檢測算法,對檢測窗口化分區(qū)域,根據(jù)檢測窗口內(nèi)非噪聲點的數(shù)量自適應(yīng)調(diào)整窗口大小,檢測的邊緣效果較好,同時有效地消除了噪聲對邊緣檢測的影響。
1 傳統(tǒng)邊緣檢測原理
傳統(tǒng)邊緣檢測算法主要是采用梯度算子計算圖像梯度,圖像梯度包括梯度幅值和梯度方向。多數(shù)算子采用邊緣鄰域像素的一階方向?qū)?shù)檢測圖像邊緣,在圖像邊緣處,像素點的一階方向?qū)?shù)具有極大值。在實際的邊緣檢測過程中,通常采用小區(qū)域模板與圖像進行卷積來近似計算一階導(dǎo)數(shù),這些模板合在一起便是一個梯度算子。常見的梯度算子有Roberts算子、Sobel算子、Prewitt算子和Krisch算子等,如圖1中分別為Roberts、Sobel和Prewitt算子模板。
圖1 幾種梯度算子模板
傳統(tǒng)的基于梯度算子邊緣檢測算法利用算子模板與圖像做卷積運算,將最大值輸出得到梯度圖像,然后再設(shè)定門限值TH,將大于等于TH的點視為圖像邊緣。梯度算子由于采用相鄰像素灰度差計算梯度,對噪聲較為敏感,當(dāng)圖像受噪聲影響較為嚴(yán)重時,檢測出的邊緣圖像包括許多的噪聲邊緣,使得后續(xù)處理無法進行。
2 本文算法
針對邊緣檢測算法存在的檢測精度與抑制噪聲的矛盾,提出了一種分區(qū)均值的自適應(yīng)噪聲圖像邊緣檢測算法,算法將檢測窗口按照4個方向劃分為4對子區(qū)域,根據(jù)檢測窗口內(nèi)非噪聲點的數(shù)量自適應(yīng)調(diào)整窗口大小,然后采用子區(qū)域內(nèi)非噪聲點的均值差計算窗口中心點的方向梯度,進而求得梯度圖像,最后采用改進的非極大值抑制方法對梯度圖像進行細(xì)化,算法原理如下。
2.1 子區(qū)域劃分
對于數(shù)字圖像,在一個檢測窗口內(nèi),中心點邊緣方向主要包括0?、45?、90?和135?四個方向。按照該四個方向,本文算法將檢測窗口劃分為8個子區(qū)域,即每個方向上劃分為2個子區(qū)域,如圖2所示。圖中上下兩排分別為3×3和5×5檢測窗口的子區(qū)域劃分,每種檢測窗口以中心點(x,y)的0?、45?、90?和135?方向分別劃分兩對子區(qū)域,其中灰色圓圈所在地區(qū)域為子區(qū)域。
2.2 脈沖噪聲點檢測與去除
圖像由于受脈沖噪聲干擾,會產(chǎn)生隨機的黑白亮點,被污染的像素灰度值與周圍正常像素相差比較大,噪聲邊緣處具有較大的梯度值,會同真實邊緣一起被檢測出來。通常對于8位的灰度數(shù)字圖像來說,脈沖噪聲點的像素值主要接近或等于0和255,根據(jù)這一特點,本文算法先采用式(1)的方法在檢測窗口對脈沖噪聲點進行判斷,為了消除噪聲點對梯度值的影響及防止噪聲邊緣被檢測出來,算法采用丟棄噪聲點的策略,即對噪聲點賦值為0,在后續(xù)的梯度計算時將不被考慮。式(1)中的δ為調(diào)解因子,主要用來調(diào)整脈沖噪聲的范圍,其值可根據(jù)實驗效果進行調(diào)整。
[f(x,y)=0, 0+δ≤f(x,y)≤255-δf(x,y), others] (1)
2.3 計算梯度
算法采用自適應(yīng)窗口分區(qū)均值的方法計算圖像梯度,即先在3×3檢測窗口內(nèi)先統(tǒng)計噪聲點的數(shù)量,如果超過3個,則用來計算方向梯度的可用像素信息太少,因此,為了獲取更多的可用像素,算法將窗口尺寸擴大為5×5,這樣梯度計算就會比較準(zhǔn)確。
圖2 檢測窗口子區(qū)域
在一個3×3或5×5檢測窗口內(nèi),按照0?、45?、90?和135?四個方向劃分4對子區(qū)域,每個方向梯度的計算方法如下:先計算每對子區(qū)域內(nèi)信息點的平均灰度值,然后再將兩個平均灰度值相減,取絕對值。為了防止方向剃度值的溢出,再除以一個衰減因子β,各個方向梯度的計算公式如式(2)~式
上述各式中,Au和Ad分別表示檢測窗口中0?方向的上、下兩個子區(qū)域,用區(qū)域內(nèi)非噪聲點的均值差計算垂直方向梯度;Al和Ar分別表示檢測窗口中90?方向的左、右兩個子區(qū)域,用區(qū)域內(nèi)非噪聲點的均值差計算水平方向梯度;Alu和Ard分別表示檢測窗口中45?方向的左上、右下兩個子區(qū)域,用區(qū)域內(nèi)非噪聲點的均值差計算135?方向梯度;Aru和Ald分別表示檢測窗口中135?方向的右上、左下兩個子區(qū)域,用區(qū)域內(nèi)非噪聲點的均值差計算45?方向梯度。由于采用區(qū)域非噪聲點均值計算方向梯度,消除了脈沖噪聲的干擾及噪聲邊緣的出現(xiàn)。算法充分利用了鄰域相關(guān)性原理,如果方向區(qū)域為邊緣方向,則該區(qū)域內(nèi)的像素灰度值變化平緩,由于采用均值,缺少的一些像素點對區(qū)域均值的影響非常小,利用均值差分可以較準(zhǔn)確地表示方向梯度。另外由于采用均值法計算梯度,對高斯噪聲也起到了一定的抑制作用。最后將4個方向梯度值的最大值作為輸出,即得到梯度圖像G,如式(6)所示。
[G(x,y)=max(Δf0(x,y),Δf90(x,y),Δf45(x,y),Δf135(x,y))] (6)
2.4 梯度圖像邊緣細(xì)化及邊緣提取
經(jīng)過式(6)輸出的圖像為梯度圖像,經(jīng)過一階微分或近似方法得出的梯度圖像邊緣仍然比較粗,如果直接采用閾值處理,大部分假邊緣可以去除,但仍會存在一些梯度幅值較大的假邊緣,因此需要對梯度圖像進行細(xì)化,為了只保留邊緣處梯度幅值局部變化最大的點,通常采用非極大值抑制方法。非極大值抑制是實現(xiàn)像素級邊緣細(xì)化的常用方法,其原理是對梯度方向上不具備極大值的中心點進行抑制,使其值為0,達到細(xì)化目的。本文采用式(7)所示的方法進行非極大值抑制,算法采用3×3窗口,從0?和90?兩個方向?qū)μ荻葓D像G進行非極大值處理,得到新的梯度圖像G′:
[G′(x,y)=G(x,y), (G(x,y)≥γ·max(G(x-1,y),G(x+1,y))) or (G(x,y)≥γ·max(G(x,y-1),G(x,y+1)))0, others] (7)
式中:γ為細(xì)化強度因子,根據(jù)γ可以根據(jù)需要調(diào)解細(xì)化強度。γ值減小,細(xì)化強度減小,可減少邊緣點的丟失,γ值增大,細(xì)化強度增大,額外的邊緣點會減少,邊緣點的丟失和額外邊緣點的增加是相互矛盾的,可根據(jù)需要調(diào)解。經(jīng)過多次實驗驗證,γ值在0.98~1.02之間調(diào)整,可保證邊緣寬度較細(xì),且連續(xù)性較好。最后,采用閾值法將梯度圖像G′進行二值化處理,對梯度圖像的邊緣進行細(xì)化和提取。
3 驗證實驗
在Matlab實驗平臺下進行仿真實驗以驗證算法的有效性,采用標(biāo)準(zhǔn)灰度圖像Lena作為實驗對象。實驗中分別將圖像加入密度為5%,50%的脈沖噪聲及方差為0.002的高斯噪聲,采用傳統(tǒng)Sobel 算法和本文算法對噪聲圖像進行邊緣檢測處理。實驗結(jié)果如圖3~圖5所示。
從圖3中可以看出, 對于較低密度脈沖噪聲污染的圖像,傳統(tǒng)Sobel算法檢測出的邊緣圖像含有許多噪聲邊緣,圖像邊緣輪廓不容易分辨;而本文算法檢測出的邊緣圖像抑制了絕大部分脈沖噪聲,檢測出的圖像邊緣方向性較強,輪廓清晰,細(xì)節(jié)部分較為完整,而且邊緣較細(xì)。從圖4中可以看出,當(dāng)脈沖噪聲增至50%時,傳統(tǒng)Sobel算法的檢測性能完全失效,而本文算法依然能夠檢測出較為清晰的圖像邊緣,只不過信息點過少,使得一些細(xì)節(jié)信息無法檢測出來。圖5是兩種算法對高斯噪聲圖像的邊緣檢測結(jié)果,從中可以看出,傳統(tǒng)Sobel算法由于受高斯噪聲影響,檢測出的邊緣圖像中含有許多噪聲邊緣,而本文算法幾乎抑制了全部高斯噪聲,邊緣效果較好,圖像比較清晰,證明了本文算法對高斯噪聲也具有一定的抑制作用。
圖3 5%脈沖噪聲圖像檢測結(jié)果
圖4 50%脈沖噪聲圖像檢測結(jié)果
圖5 方差為0.002的高斯噪聲圖像檢測結(jié)果
4 結(jié) 論
針對含噪圖像提出一種分區(qū)均值的自適應(yīng)邊緣檢測算法。算法采用分區(qū)域均值的方法計算圖像梯度,針對不同密度的噪聲能夠自適應(yīng)調(diào)整檢測窗口的大小。算法不僅較好地檢測出不同程度脈沖噪聲干擾圖像的邊緣,而且對高斯噪聲也起到了一定的抑制作用。實驗證明,算法對含噪圖像的檢測效果明顯優(yōu)于傳統(tǒng)的Sobel算法,具有一定的實用價值。
參考文獻
[1] 王康泰,戴文戰(zhàn).一種基于Sobel算子和灰色關(guān)聯(lián)度的圖像邊緣檢測方法[J].計算機應(yīng)用,2006,26(5):1035?1037.
[2] 畢卓,韓冰.抗噪Roberts 算子邊沿檢測器[J].計算機技術(shù)與發(fā)展,2013,23(6):258?261.
[3] 張志剛,鄭冰.基于Sobel 算法的細(xì)胞邊緣提取技術(shù)[J].微計算機信息,2011,27(12):128?129.
[4] 臧晶.Prewitt 改進算法的研究與實現(xiàn)[J].沈陽理工大學(xué)學(xué)報,2012,31(1):28?30.
[5] 周澤華,胡學(xué)友,譚敏.基于Log算子邊緣檢測的車牌定位方法[J].自動化與儀器儀表,2009(2):90?92.
[6] 鮑雄偉.小波變換在圖像邊緣檢測中的應(yīng)用[J].電子設(shè)計工程,2012,20(14):160?162.
[7] 吳一全,宋昱,周懷春.基于各向異性數(shù)學(xué)形態(tài)學(xué)的火焰圖像邊緣檢測[J].儀器儀表學(xué)報,2013,34(8):1818?1824.
[8] 劉雙強.一種改進的圖像邊緣檢測方法?Weighted CHNN[J].微電子學(xué)與計算機,2011,28(9):100?103.
[9] 王丹,吳孟達,毛紫陽,等.基于多粒度粗糙模糊集的圖像邊緣檢測[J].模式識別與人工智能,2012,25(2):195?204.
[10] 牟宇飛,張文普,彭畑.基于遺傳算法閾值優(yōu)化的模糊邊緣檢測[J].重慶理工大學(xué)學(xué)報:自然科學(xué)版,2012,26(8):91?112.