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