趙 潔,李 瑋,郝志鵬,彭慧卿
(天津城市建設(shè)學(xué)院 電子與信息工程系,天津 300384)
邊緣檢測(cè)是圖像分割、目標(biāo)區(qū)域識(shí)別和特征提取等數(shù)字圖像分析領(lǐng)域中的重要技術(shù),目前已經(jīng)成為機(jī)器視覺研究領(lǐng)域最活躍的熱點(diǎn)課題之一。傳統(tǒng)邊緣檢測(cè)方法包括Roberts算子、Sobel算子等一階微分算子,以及Laplacian算子、LOG算子等二階微分算子[1]。這類算法以滿足一階導(dǎo)數(shù)極大值點(diǎn)或者二階導(dǎo)數(shù)過零點(diǎn)作為圖像的候選邊緣點(diǎn),通過人為設(shè)定的全局閾值作為評(píng)價(jià)標(biāo)準(zhǔn)去除噪聲與弱邊緣點(diǎn),將梯度值小于閾值的候選邊緣點(diǎn)刪除。由于微分運(yùn)算對(duì)噪聲比較敏感,抗噪聲性能差,提取的邊緣不夠精細(xì),因此在實(shí)際應(yīng)用中受到了限制[2]。對(duì)于邊緣檢測(cè)算子性能優(yōu)劣,Canny提出了三個(gè)評(píng)價(jià)準(zhǔn)則[2]:高信噪比準(zhǔn)則、定位精準(zhǔn)準(zhǔn)則和單一邊緣唯一響應(yīng)準(zhǔn)則,并據(jù)此提出了Canny邊緣檢測(cè)算子。實(shí)際應(yīng)用證明,Canny算子具有較好的邊緣檢測(cè)效果,因此迄今為止一直被廣泛應(yīng)用。
近年來,很多學(xué)者都提出了基于Canny算子的改進(jìn)算法,但大多數(shù)都是針對(duì)如何解決自適應(yīng)確定雙閾值的問題[3-5]。傳統(tǒng)Canny算法采用高斯濾波器消除圖像噪聲,不僅會(huì)造成圖像的過度光滑,而且容易造成緩變邊緣的丟失,這樣會(huì)導(dǎo)致復(fù)雜圖像的弱邊緣無法檢測(cè)。另外,傳統(tǒng)Canny算子中梯度幅值的計(jì)算方法沒有充分考慮到3×3鄰域內(nèi)周圍像素對(duì)中心像素的影響。針對(duì)上述問題與不足,結(jié)合小波融合技術(shù)的優(yōu)勢(shì),本文提出了一種基于改進(jìn)Canny算子與圖像形態(tài)學(xué)融合的邊緣檢測(cè)方法。仿真結(jié)果表明,該算法有效地提高了邊緣檢測(cè)的準(zhǔn)確性和完整性。
圖1 3×3窗口中的梯度算子
Canny算子首先采用二維高斯函數(shù)構(gòu)造濾波器,分別按行和列對(duì)原始圖像進(jìn)行卷積運(yùn)算,得到平滑圖像I(x,y):
其中,σ為高斯函數(shù)的均方差,控制著平滑程度。
Canny算法一般采用2×2鄰域內(nèi)一階偏導(dǎo)的有限差分來近似計(jì)算平滑后的圖像I(x,y)的梯度幅值和方向。x與y方向的偏導(dǎo)數(shù)陣列Px(i,j)和Py(i,j)分別為:
非極大值抑制的目的是找到I(x,y)中所有可能的邊緣點(diǎn),基本思想是使一個(gè)3×3鄰域作用于梯度幅值陣列M(i,j)的所有點(diǎn),如果鄰域中心點(diǎn)的梯度幅值M(i,j)比沿梯度方向上的兩個(gè)相鄰點(diǎn)幅值大,則將當(dāng)前的鄰域中心點(diǎn)判別為可能的邊緣點(diǎn),否則將M(i,j)賦值為零,判別為非邊緣點(diǎn)。
Canny算子對(duì)非極大值抑制的子圖像分別使用高低兩個(gè)閾值 τh和 τl,且 τh≈2τl,從而得到兩個(gè)閾值邊緣圖像Th(i,j)和Tl(i,j)。雙閾值算法要在Th(i,j)中把邊緣連接成輪廓,當(dāng)?shù)竭_(dá)輪廓的端點(diǎn)時(shí),就在Tl(i,j)的8-鄰域位置尋找可以連接到輪廓上的邊緣,這樣算法將不斷地在Tl(i,j)中檢測(cè)邊緣,直到將Th(i,j)中所有的間隙連接起來。
中值濾波是一種非線性濾波方法,可以克服線性濾波器(如高斯濾波)給圖像帶來的邊緣模糊,它能在濾除噪聲的同時(shí)很好地保持圖像邊緣。本文采用的是自適應(yīng)中值濾波方法,對(duì)于密度較大的脈沖噪聲,它比傳統(tǒng)的中值濾波方法更能有效地抑制濾波造成的邊緣模糊問題,保護(hù)圖像邊緣細(xì)節(jié)。設(shè)fij為圖像點(diǎn)(i,j)的灰度,Aij為中值濾波的當(dāng)前工作窗口,fmin、fmax和 fmed分別為 Aij中的灰度最小值、最大值和中值,Amax為允許最大窗口。則自適應(yīng)中值濾波算法的基本步驟如下[6]:
(1)若 fmin<fmed<fmax,則轉(zhuǎn)至步驟(2),否則增大窗口 Aij的尺寸。若Aij的尺寸小于Amax的尺寸,則重復(fù)步驟(1),否則輸出 fij;
(2)若 fmin<fij<fmax,則輸 出 fij,否則輸出 fmed。
由于圖像邊緣可能以任意角度通過像素陣列,因此通過分別計(jì)算平滑后圖像 I(x,y)的3×3窗口中心像素 x方向、45°方向、y方向、135°方向的一階偏導(dǎo)數(shù)有限差分均值來確定像素點(diǎn)的梯度幅值,充分考慮到各個(gè)方向?qū)χ行狞c(diǎn)梯度幅值的影響,最大限度地減少誤差。借鑒于Sobel算子,這4個(gè)方向上的梯度算子如圖1所示,對(duì)離鄰域中心點(diǎn)最近的像素進(jìn)行了加權(quán),增強(qiáng)了抑制噪聲的效果。
3×3窗口中心像素點(diǎn)的梯度幅值 M(i,j)和梯度方向θ(i,j)的計(jì)算如下:
圖像形態(tài)學(xué)的基本思想是利用一個(gè)具有一定形態(tài)的稱為結(jié)構(gòu)元素的“探針”收集圖像的信息,當(dāng)探針在圖像中不斷移動(dòng)時(shí),便可度量和提取圖像中對(duì)應(yīng)形狀間的相互關(guān)系以達(dá)到圖像分析和識(shí)別的目的[6]。圖像形態(tài)學(xué)的基本運(yùn)算包括灰度膨脹 f⊕b、灰度腐蝕 fΘb、灰度開運(yùn)算 f οb和灰度閉運(yùn)算 f·b。
傳統(tǒng)的形態(tài)學(xué)邊緣檢測(cè)算子的基本思想是對(duì)原始圖像做形態(tài)學(xué)梯度處理,使輸入圖像灰度變化更加尖銳,進(jìn)而檢測(cè)到圖像邊緣。借助上述各種形態(tài)學(xué)基本運(yùn)算,常用的形態(tài)學(xué)梯度MG具有以下幾種表示形式:
圖像融合是將同一對(duì)象的兩幅或更多幅圖像合成為一幅圖像,以獲取對(duì)同一場(chǎng)景的更為精確、更為全面、更為可靠的圖像描述。小波變換是圖像的多尺度、多分辨率分解,它可以聚焦到圖像的任意細(xì)節(jié)。基于小波變換的圖像融合的基本原理如下[7-8]:如果一個(gè)圖像進(jìn)行L層小波分解,將得到(3L+1)層子帶,其中包括低頻的基帶 Cj和 3L層的高頻子帶 Dh、Dv和 Dd。 用 f(x,y)代表原始圖像,記為 C0,設(shè)尺度系數(shù) Φ(x)和小波系數(shù) ψ(x)對(duì)應(yīng)的濾波器系數(shù)矩陣分別為H和G,則二維小波分解算法可以描述為:
其中,j表示分解層數(shù);h、v、d分別表示水平、垂直、對(duì)角分量;HT和GT分別是H、G的共軛轉(zhuǎn)置矩陣。小波的重構(gòu)算法為:
本文提出的基于圖像融合的邊緣檢測(cè)算法流程如圖2所示,具體實(shí)現(xiàn)過程如下:
(1)對(duì)采用改進(jìn)的Canny算子進(jìn)行邊緣檢測(cè):①采用3×3窗口的自適應(yīng)中值濾波進(jìn)行圖像平滑;②采用改進(jìn)的8-鄰域梯度幅值方法計(jì)算梯度的幅值和方向;③對(duì)梯度幅值應(yīng)用非極大值抑制;④用雙閾值算法檢測(cè)和連接邊緣。
(2)采用式 (1)的形態(tài)學(xué)邊緣檢測(cè)算子進(jìn)行邊緣檢測(cè),結(jié)構(gòu)元素為半徑為3的圓盤。
(3)將上述得到的兩幅邊緣圖像應(yīng)用小波的融合技術(shù)進(jìn)行圖像融合:①對(duì)兩幅邊緣圖像進(jìn)行三層二維DWT分解,得到圖像的低頻分量和高頻分量;②取兩幅圖像的低頻和高頻分量的平均值進(jìn)行融合;③經(jīng)過小波逆變換重構(gòu)融合后的邊緣圖像。
圖2 本文算法流程圖
實(shí)驗(yàn)所用PC機(jī)配置為:AMD Sempron 3200+CPU,1GB內(nèi)存,集成顯卡,仿真實(shí)驗(yàn)采用Matlab7.0編程。選取加入1%椒鹽噪聲的Lena灰度圖像作為測(cè)試圖像,分別用傳統(tǒng)Canny算法和本文提出的融合算法進(jìn)行邊緣檢測(cè),實(shí)驗(yàn)結(jié)果如圖3~圖6所示,算法運(yùn)算時(shí)間及相應(yīng)參數(shù)如表1所示。
圖3 含1%椒鹽噪聲Lena圖像
圖4 傳統(tǒng)Canny算子檢測(cè)結(jié)果
圖5 改進(jìn)的Canny算子檢測(cè)結(jié)果
圖6 改進(jìn)Canny算子與圖像形態(tài)學(xué)融合算法檢測(cè)結(jié)果
表1 算法運(yùn)算時(shí)間的比較
由圖4、圖 5比較可知,傳統(tǒng)Canny算子對(duì)椒鹽噪聲非常敏感,而改進(jìn)的Canny算子具有較強(qiáng)的噪聲抑制能力,并且保持了Canny算子檢測(cè)邊緣清晰連貫的優(yōu)勢(shì),兼顧了平滑噪聲和抑制假邊緣的需要;由圖5、圖6的檢測(cè)結(jié)果比較可知,本文提出的融合算法豐富了部分灰度變化緩慢的局部邊緣細(xì)節(jié)信息,具有更好的抗噪能力和細(xì)節(jié)保留能力,可以檢測(cè)出比較完整并且連續(xù)的邊緣,使邊緣檢測(cè)結(jié)果有明顯改善。從表1的運(yùn)算時(shí)間可知,本文算法與傳統(tǒng)Canny算法的所需時(shí)間相當(dāng),在提高檢測(cè)效果的同時(shí)沒有明顯降低檢測(cè)效率。
本文結(jié)合小波融合技術(shù)的優(yōu)勢(shì)提出了一種基于改進(jìn)Canny算子與圖像形態(tài)學(xué)融合的邊緣檢測(cè)方法,仿真實(shí)驗(yàn)表明該算法檢測(cè)提取的圖像邊緣包含了比原始圖像更加豐富的邊緣細(xì)節(jié)和更加完整的輪廓信息,提高了邊緣定位的精度及準(zhǔn)確度,兼顧了平滑噪聲和抑制假邊緣的需要,檢測(cè)出的邊緣連續(xù)性好,是一種有效的邊緣檢測(cè)方法。
[1]孫即祥.圖像處理[M].北京:科學(xué)出版社,2005.
[2]CANNY J.A Computational approach to edge detection[J].IEEE Transactions on Pattern Analysis and Machine Intell-igence,1986,8(6):679-698.
[3]黃劍玲,鄒輝.一種精確的自適應(yīng)圖像邊緣提取方法[J]. 計(jì)算機(jī)工程與科學(xué),2009,31(9):53-55.
[4]雒濤.改進(jìn)的自適應(yīng)閾值Canny邊緣檢測(cè)[J].光電工程,2009,36(11):106-111.
[5]王衛(wèi)星.一種基于最大類間后驗(yàn)概率的Canny邊緣檢測(cè)算法[J].計(jì)算機(jī)應(yīng)用,2009,29(4):962-965.
[6]何明一,衛(wèi)保國(guó).數(shù)字圖像處理[M].北京:科學(xué)出版社,2008.
[7]張德豐.MATLAB數(shù)字圖像處理[M].北京:機(jī)械工業(yè)出版社,2009.
[8]陳浩,王延杰.基于小波變換的圖像融合技術(shù)研究[J].微電子學(xué)與計(jì)算機(jī),2010,27(5):39-41.