李東興,高倩倩,張 起,蔡亞南,吳秀東
(山東理工大學 機械工程學院,山東 淄博 255049)
邊緣是圖像的重要特征之一,邊緣檢測是對圖像特征提取和紋理分析的基礎,在數(shù)字圖像領域有著重要的應用價值[1-2].傳統(tǒng)的邊緣檢測算法包括Roberts、Prewitt、Sobel、Laplacian及LOG(Laplacian of Gaussian)等微分算子.這類算子是基于微分的邊緣檢測算法,雖然計算簡單、運算速率快,但對噪聲的響應比較敏感[3-4].在最優(yōu)化理論思想上所推導的傳統(tǒng)Canny算法在實際應用中具有局限性[5].該算法采用高斯濾波器平滑濾波,不僅會引起去噪圖像的過度光滑,而且會出現(xiàn)無法檢測復雜圖像中弱邊緣的問題.此外,該方法在計算梯度幅值時沒有考慮斜方向上像素帶來的影響,雙閾值法檢測和連接邊緣點時增加了邊緣定位的不確定性,邊緣檢測的效果在一定程度上受到了影響.因此,本文提出融合數(shù)學形態(tài)學濾波技術改進的Canny邊緣檢測算法,用數(shù)學形態(tài)學濾波技術代替?zhèn)鹘y(tǒng)的高斯濾波,多方向上計算梯度的幅值與方向,并根據梯度方向信息進行邊緣點的檢測和連接.
傳統(tǒng)Canny算法的基本思想是對圖像選取一定的高斯濾波器平滑去噪,再尋找濾波后圖像梯度的局部極大值,進而確定邊緣圖像[6-7].
Canny算法所遵循的3個準則為:
(1)信噪比準則:對邊緣的錯誤檢測率盡可能低,確保輸出的信噪比最大.
(2)定位精度準則:所檢測的邊緣點偏離真實邊緣點的距離最小[8].
(3)單邊緣響應準則:對同一邊緣的響應次數(shù)盡可能低,對單邊緣最好只有一個響應[9].
(1)傳統(tǒng)Canny算法采用高斯濾波器對含噪圖像平滑濾波,其中高斯函數(shù)的方差需人為設定,圖像平滑去噪的同時無法保證保留較多的圖像細節(jié)信息,易造成復雜圖像緩變邊緣的丟失,一些弱邊緣信息無法檢測而影響圖像邊緣的完整性.
(2)傳統(tǒng)Canny算法用一階偏導的有限差分計算梯度幅值,只提取水平方向和豎直方向的梯度會造成其它方向上邊緣信息的丟失.
(3)傳統(tǒng)Canny算法采用雙閾值法檢測和連接邊緣時依據梯度幅值的信息,易造成虛假邊緣和邊緣連續(xù)性之間的矛盾,無法在抑制噪聲的同時保持圖像的細節(jié)邊緣.
數(shù)學形態(tài)學是用具有一定形態(tài)和大小的結構元素構造圖像運算獲取圖像信息,使后續(xù)的識別工作能夠抓住目標對象最為本質的形狀特征[10].膨脹運算、腐蝕運算、開運算和閉運算是數(shù)學形態(tài)學的4種基本運算.假設輸入的原始圖像f(i,j)的定義域為Df,結構元素b(i,j)的定義域為Db,則這4種基本運算的定義分別如下:
腐蝕運算
(f?b)(s,t)=min{f(s+i,t+j)-
b(i,j)|(s+i,t+j)∈Df,(i,j)∈Db}
膨脹運算
(f⊕b)(s,t)=max{f(s-i,t-j)+
b(i,j)|(s-i,t-j)∈Df,(i,j)∈Db}
開運算
fb=(f?b)⊕b
閉運算
f?b=(f⊕b)b
腐蝕運算能夠將物體的邊界消除,濾除掉一切不能完全包括結構元素的噪聲點.膨脹運算的作用和腐蝕運算恰好相反,它可以使圖像的邊界擴大和連通圖像的斷裂部分.開運算能夠在平滑圖像輪廓的同時斷開狹窄的連接和去除細小的突出部分.閉運算則可以使圖像輪廓變光滑,連接狹窄的間斷口以及填補比結構元素小的孔洞.
本文在Canny算法中融合數(shù)學形態(tài)學對圖像進行濾波去噪,利用十字形結構元素對圖像進行先閉運算后開運算的操作以濾波去噪,采用改進的8鄰域從多方向上計算梯度幅值,然后進行非極大值抑制,最終根據梯度方向信息進行邊緣點的檢測和連接.
融合數(shù)學形態(tài)學濾波技術改進的Canny邊緣檢測算法具體步驟如下:
(1)采用數(shù)學形態(tài)學對圖像濾波去噪
本文選用兩個尺度大小分別為5×5和3×3的十字形結構元素b1,b2.
結構元素b1的尺度相對較大,其去噪能力較強卻丟失掉較多的圖像細節(jié).結構元素b2的尺度較小,雖能保留圖像細節(jié)信息但其去噪效果差.綜合這兩種結構元素的優(yōu)點,利用結構元素b1和b2對圖像做閉、開運算,其運算過程為
I=f?b1b2
式中:f為輸入的原始圖像;I為平滑降噪后的圖像.
本文首先利用5×5的結構元素對圖像閉運算操作,在抑制暗噪聲的同時減少了部分圖像細節(jié);其次通過3×3結構元素的開運算實現(xiàn)對亮噪聲的抑制,并對邊緣圖像的細節(jié)進行補償.用數(shù)學形態(tài)學濾波代替高斯濾波,利用兩個不同的結構元素對圖像進行閉、開運算,能在有效去除噪聲的同時保留更多的細節(jié)信息.
(2)采用改進的8鄰域計算梯度幅值和方向
由于圖像的邊緣可能通過任意角度以像素的形式陣列,因此可先通過分別計算平滑后圖像3×3窗口中心像素的x方向、45°方向、y方向以及135°方向的一階偏導數(shù)有限差分均值,進而確定像素點的梯度幅值.由于中心像素的各個方向對梯度幅值都有影響,所以選擇對距離鄰域中心像素點最近的點加權,可以減少誤差達到增強抑制噪聲的效果.參考Sobel算子,本文所采用3×3窗口的4個方向的梯度算子如圖1所示.
圖13×3窗口的梯度算子
Fig.1Gradientoperatorof3×3window
點(i,j)處在x方向的偏導數(shù)為
點(i,j)處在45°方向的偏導數(shù)為
點(i,j)處在y方向的偏導數(shù)為
點(i,j)處在135°方向的偏導數(shù)為
3×3窗口中心像素的梯度幅值M(i,j)和梯度方向θ(i,j)的計算方法如下:
θ(i,j)=arctan[Gy(i,j)/Gx(i,j)]
(3)非極大值抑制
圖像邊緣的確定僅依據全局梯度不能保證邊緣檢測的完整性,必須保留局部梯度最大的點以增強完整性.沿梯度方向對以點(i,j)為中心3×3鄰域內的像素點插值,若沿梯度方向上兩個相鄰像素點的插值小于該點的梯度幅值,則該點為候選邊緣點,反之則不是,因而得到候選邊緣圖像N.
(4)根據梯度方向信息檢測和連接邊緣點
梯度幅值和梯度方向是圖像像素點中的重要信息,在采用基于梯度幅值信息的雙閾值法檢測和連接邊緣點時會導致低強度邊緣點和噪聲點無法區(qū)分.但在梯度方向上邊緣點和噪聲點是不同的,邊緣點的梯度方向常指向邊緣的法線方向,而噪聲點的梯度方向是不定的.因此,根據梯度方向信息能夠將邊緣點和噪聲點區(qū)別開.
在以候選邊緣點G(i,j)為中心的8鄰域內,ligt={(0,t{,t=1,…,8}為中心點到各點的連線,其法線方向取-π/4,0,π/4,π/2之一.Angt為中心點及其鄰域內一點t的平均梯度方向及其連線ligt法線方向夾角的絕對值,其中Angt在取絕對值之前要將其歸在(-π/2,π/2)中.當中心點和鄰域內的點t在同一邊緣時,因為邊緣點的梯度方向為該點處邊緣的法線方向,ligt應小于較小值T,而噪聲點的ligt值常常比較大.因此,可從梯度方向對邊緣點檢測和連接,其具體實現(xiàn)步驟如下:
①對經非極大值抑制后得到的候選邊緣圖像N進行掃描,若G(i,j)的8鄰域內有其他的候選邊緣點,將執(zhí)行下一步;否則跳轉到步驟⑥.
②由梯度方向計算出點(i,j)與其8鄰域內所掃描的第一個候選邊緣點的Angt1,若Angt1 ③繼續(xù)掃描點G(i,j)的8鄰域內其他未被識別為邊緣點tp的候選邊緣點,算出與之對應的Angtp,若找到滿足Angtp ④將鄰域中心點及滿足Angtp ⑤若tp的8鄰域內存在未被識別為邊緣點的候選邊緣點,則該點被識別為邊緣點,并以該點作為新的起點繼續(xù)連接,直到所有新的起點的8鄰域內不含有新的未被識別的候選邊緣點. ⑥繼續(xù)掃描圖像N看是否有新的候選邊緣點,若該點未被識別為邊緣點,則跳轉到步驟①,否則掃描其他點,一直到無法檢測到新的未被識別為邊緣點的候選邊緣點停止. 本文選取了2幅尺寸大小為256×256的圖像,分別運用傳統(tǒng)的Canny算法、文獻[9]中改進的算法以及本文所提算法對圖像進行實驗驗證.本文所提出的算法檢測和連接邊緣時使用了較小值參數(shù)T,由實驗可知,當T過小時,邊緣會出現(xiàn)斷續(xù)現(xiàn)象,對于不同圖像當T取5°~30°時,效果比較理想,本文中T取20°,不同算法的實驗結果如圖2所示. 圖2中,圖(a)和圖(a′)分別為Cameraman和Lena原始圖像,圖(b)和圖(b′)分別為傳統(tǒng)Canny算法相應的邊緣檢測結果,圖(c)和圖(c′)分別為文獻[9]所用算法處理的邊緣檢測結果,圖(d)和圖(d′)分別為本文算法相應的邊緣檢測結果.由圖2可知:傳統(tǒng)Canny算法對圖像的去噪性能較差,檢測結果中有較多的虛假邊緣存在;文獻[9]所提出的算法在一定程度上提高了邊緣檢測的效果,但目標邊緣淹沒在背景噪聲中,不利于后續(xù)的邊緣提??;本文提出的算法明顯減少了虛假邊緣,并且目標邊緣定位較準確,較好地保持了圖像的邊緣強度,有豐富 (a) (b) (c) (d) (a′) (b′) (c′) (d′)圖2 原始圖像及不同算法的邊緣檢測結果Fig.2 Original images and edge detection results of different algorithms 的邊緣細節(jié)和完整的輪廓信息,能有效地檢測出圖像的邊緣. 本文運用均方誤差MSE(Mean Square Error)、峰值信噪比PSNR(Peak Signal to Noise Ratio)、相關系數(shù)以及信息熵對不同算法定量比較. 峰值信噪比是評價圖像質量的重要參數(shù),單位是dB,其公式為 不同算法的MSE和PSNR值見表1.由表1可以看出,本文所提算法的MSE得到有效降低的同時,PSNR得到提高,一定程度上說明了本文算法的有效性. 表1 不同算法的MSE和PSNR值 邊緣檢測圖像所用算法MSEPSNR圖1(b)圖1(c)圖1(d)Canny算法213 7.614.8文獻[9]算法136 9.916.7本文算法954.718.3圖1(b')圖1(c')圖1(d')Canny算法232 5.114.5文獻[9]算法162 1.516.3本文算法915.218.5 相關系數(shù)是反映兩幅圖像之間相關程度的評價指標,相關系數(shù)的值與數(shù)值1間的差距越小,表明兩幅圖像的相似度越高,其公式為 C(A,B)= 信息熵代表圖像中含有的信息量,其定義為 式中:H為圖像的信息熵;L為圖像中所含灰度級的個數(shù);Pi為當像素的灰度值為i時的概率. 不同算法的相關系數(shù)和信息熵的值見表2,可以看出本文算法的相關系數(shù)和信息熵的值均大于傳統(tǒng)Canny和文獻[9]中所改進算法的相應值,改進算法所處理的圖像與原始圖像的相關性更強,能夠很好地保留原始圖像的邊緣信息,含有豐富的原始圖像信息,從而能夠體現(xiàn)原始圖像豐富的本質特性. 表2 不同算法的相關系數(shù)和信息熵值 評價標準原始圖像Canny算法文獻[9]算法本文算法相關系數(shù)圖1(a)0.831 50.904 80.935 7圖1(a')0.842 60.885 20.940 6信息熵圖1(a)1.367 93.264 53.845 2圖1(a')1.426 13.534 84.296 5 本文針對傳統(tǒng)Canny算法的不足提出了融合數(shù)學形態(tài)學濾波技術改進的Canny邊緣檢測算法.采用數(shù)學形態(tài)學對圖像濾波去噪替代傳統(tǒng)的高斯濾波,從中心像素的4個方向確定像素點的梯度幅值,實現(xiàn)了根據梯度方向信息替代雙閾值法對邊緣點的檢測和連接,從而獲得圖像邊緣.實驗結果表明,該算法降低了均方誤差,提高了峰值信噪比,所檢測的圖像邊緣包含了更加豐富的邊緣細節(jié)和更加完整的輪廓信息,能夠有效平滑噪聲和減少圖像虛假邊緣,是一種有效的邊緣檢測方法.4 實驗結果與分析
Tab.1 MSE and PSNR values of different algorithms
Tab.2 Correlation coefficient and information entropy values of different algorithms5 結束語