張美靜,石振剛
(沈陽(yáng)理工大學(xué)信息科學(xué)與工程學(xué)院,遼寧沈陽(yáng) 110159)
圖像邊緣包含豐富的信息(如階躍性質(zhì)、方向、形狀等),邊緣檢測(cè)是一個(gè)非常重要的圖像預(yù)處理過(guò)程,在計(jì)算機(jī)視覺(jué)和圖像處理領(lǐng)域中占據(jù)重要的地位[1],被廣泛用于圖像分割、遙感、機(jī)器人、醫(yī)學(xué)圖像分析和模式識(shí)別等領(lǐng)域。圖像邊緣往往是灰度不連續(xù)處,基于這一特征提出的經(jīng)典邊緣檢測(cè)一階算子(如 Sobel、Prewitt和 Canny[2]等)和二階算子(如 Laplacian、Marr-Hildreth[3]等)的算法簡(jiǎn)單且檢測(cè)速度快,但易受噪聲的干擾,致使邊界檢測(cè)不完整,結(jié)果不精確,只有整個(gè)像素級(jí)的精度。實(shí)際上,邊緣的位置存在于像素的任何位置,并且微分算子對(duì)噪聲非常敏感,常會(huì)產(chǎn)生一些偽邊緣等。隨著工業(yè)檢測(cè)等對(duì)精度要求的不斷提高,傳統(tǒng)邊緣檢測(cè)算法已經(jīng)不能滿足實(shí)際測(cè)量的需要。
為了解決這一問(wèn)題,從20世紀(jì)70年代起,就有不少專(zhuān)家提出了一些有效的亞像素定位方法。這些算法需先用經(jīng)典算法找出邊緣的像素級(jí)精度的位置,然后使用周?chē)袼氐幕叶戎底鳛榕袛嗟难a(bǔ)充信息,使邊緣定位于更加精確的位置。亞像素級(jí)算法可以突破CCD相機(jī)分辨率的限制,使圖像的邊緣定位達(dá)到更精確的位置,從而提高圖像測(cè)量系統(tǒng)的檢測(cè)精度。目前國(guó)內(nèi)外研究的亞像素邊緣檢測(cè)理論與技術(shù),在數(shù)學(xué)上可以歸納為擬合法[4]、矩法[5]、插值法[6]三種類(lèi)型。本文利用改進(jìn)的數(shù)學(xué)形態(tài)學(xué)梯度算子進(jìn)行邊緣點(diǎn)的粗定位,再利用三次樣條函數(shù)進(jìn)行插值,最后將提取出的邊緣進(jìn)行細(xì)化,能夠有效地檢測(cè)出邊緣。
數(shù)學(xué)形態(tài)學(xué)圖像處理是以幾何學(xué)為基礎(chǔ),著重研究圖像的幾何結(jié)構(gòu)。利用一個(gè)結(jié)構(gòu)元素作為基本工具來(lái)探測(cè)和提取圖像特征,看這個(gè)結(jié)構(gòu)元素是否能夠適當(dāng)有效地放入圖像內(nèi)部,結(jié)構(gòu)元素的選擇與從圖像中抽取何種信息有密切的關(guān)系。在解決去除噪聲、邊緣檢測(cè)等圖像預(yù)處理問(wèn)題中有著明顯的優(yōu)勢(shì)[7],其基本運(yùn)算包括腐蝕(erosion)和膨脹(dilation),其他運(yùn)算都是基于這2種運(yùn)算的復(fù)合。
膨脹是在圖像中“加長(zhǎng)”或“變粗”的操作,這種特殊的方式和加粗的程度由一個(gè)稱(chēng)為結(jié)構(gòu)元素的集合控制。數(shù)學(xué)上,膨脹定義為集合運(yùn)算。A被B膨脹,記為A⊕ B,定義為
式中,Φ為空集,B為結(jié)構(gòu)元素。
腐蝕“收縮”或“細(xì)化”圖像中的對(duì)象,像膨脹一樣,收縮的方式和程度由一個(gè)結(jié)構(gòu)元素控制。A被B腐蝕,記為AΘB,定義為
結(jié)構(gòu)元素相當(dāng)于一個(gè)小的“探針”,在形態(tài)變換中的作用與信號(hào)處理中的“濾波窗口”相同。結(jié)構(gòu)元素可以有水平結(jié)構(gòu)元素、垂直結(jié)構(gòu)元素、矩形結(jié)構(gòu)元素、扁平結(jié)構(gòu)元素和圓盤(pán)結(jié)構(gòu)元素等。
開(kāi)運(yùn)算和閉運(yùn)算都是膨脹與腐蝕的組合運(yùn)算,A被B的形態(tài)學(xué)開(kāi)運(yùn)算記做A?B,這種運(yùn)算是A被B腐蝕后再用B來(lái)膨脹腐蝕后的結(jié)果:
開(kāi)運(yùn)算的另一個(gè)數(shù)學(xué)公式為
A被B的形態(tài)學(xué)閉運(yùn)算記做A· B,它是先膨脹然后再腐蝕的結(jié)果:
形態(tài)學(xué)開(kāi)運(yùn)算和閉運(yùn)算都能夠平滑對(duì)象的輪廓,然而與開(kāi)運(yùn)算不同的是,閉運(yùn)算一般會(huì)將狹窄的缺口連接起來(lái)形成細(xì)長(zhǎng)的彎口,并填充比結(jié)構(gòu)元素小的洞。
基于上面的基本數(shù)學(xué)形態(tài)學(xué)運(yùn)算,假設(shè)A(x,y)為灰度圖像,B(s,t)為結(jié)構(gòu)元素,有以下3種典型的形態(tài)學(xué)邊緣檢測(cè)算法[8](設(shè)E(A)為圖像邊緣)。
(1)內(nèi)邊緣提取算法(腐蝕型邊緣提取):
(2)外邊緣提取算法(膨脹型邊緣提取):
(3)形態(tài)學(xué)梯度提取算法(膨脹腐蝕型邊緣提取):
式中,⊕表示膨脹運(yùn)算,Θ表示腐蝕運(yùn)算。
以上三種形態(tài)學(xué)邊緣提取算子是一種非線性差分算子,實(shí)質(zhì)上是傳統(tǒng)線性差分算子在一定意義上的推廣,所以仍然有噪聲存在。由于形態(tài)學(xué)膨脹和閉運(yùn)算對(duì)負(fù)向噪聲有抑制作用,而形態(tài)學(xué)腐蝕和開(kāi)運(yùn)算對(duì)正向噪聲有抑制作用,楊述斌等[9]提出了一種改進(jìn)的形態(tài)學(xué)邊緣檢測(cè)算子:
稱(chēng)其為改進(jìn)形態(tài)學(xué)梯度算子(improved morphological gradient operator,IMG),由于隨機(jī)噪聲的寬度可能小于結(jié)構(gòu)元素的寬度,而被混雜在處理后的圖像中,因此單獨(dú)使用結(jié)構(gòu)元素很難取得最佳的濾波效果。為了同時(shí)提取邊緣的像素點(diǎn)方向信息,便于構(gòu)造邊緣點(diǎn)向量組,選取2個(gè)3×3的十字形和交叉形的結(jié)構(gòu)元素,并令其關(guān)于原點(diǎn)對(duì)稱(chēng)且互補(bǔ)。計(jì)算時(shí)采用兩者形態(tài)學(xué)梯度的加權(quán)組合形式,則改進(jìn)形態(tài)學(xué)梯度濾波算子(improved morphological gradient filter operator,IMGF)為
式中:c1、c2為權(quán)系數(shù),c1IGrad1、c2IGrad2為兩個(gè)結(jié)構(gòu)元素相對(duì)應(yīng)的改進(jìn)形態(tài)學(xué)梯度;利用最小均方自適應(yīng)方法,確定最佳的權(quán)系數(shù)。
改進(jìn)的數(shù)學(xué)形態(tài)學(xué)梯度算子檢測(cè)出像素級(jí)邊緣后,為了得到亞像素級(jí)的邊緣,要對(duì)邊緣圖進(jìn)行內(nèi)插處理。插值算法有很多種,例如最鄰近插值、雙線性插值、三次樣條插值等等。雖然Sinc函數(shù)在理論上能夠完全重建連續(xù)圖像,但該函數(shù)計(jì)算量太大,實(shí)時(shí)性差。而最近鄰插值、線性插值又不如三次樣條插值精確,所以文中選用三次樣條插值函數(shù)對(duì)圖像邊緣圖進(jìn)行插值處理。三次樣條插值函數(shù)的定義為
若函數(shù)S(x)滿足:
S(x)在每個(gè)子區(qū)間[xi-1,xi](i=1,2,…,n)上是不高于三次的多項(xiàng)式,其中(a=x0<x1<…<xn=b)。
(1)S(x),S′(x),S″(x)在[a,b]上連續(xù)。
(2)滿足插值條件 S(xi)=f(xi),(i=0,1,…,n),則稱(chēng) S(x)為函數(shù) f(x)關(guān)于節(jié)點(diǎn) x0,x1,…,xn的三次樣條插值函數(shù)。
三次樣條插值函數(shù)S(w)的表達(dá)式為
式中w為樣條節(jié)點(diǎn)。
這里,三次樣條插值函數(shù)在理論上與最佳插值函數(shù)Sinc(w)逼近。
二維空間的樣條插值示意圖如圖1所示,用矩陣表示樣條插值的計(jì)算公式為
F(m,n)為插值后的圖像;f(i,j)為輸入的插值前像素點(diǎn);u和v分別為u=m-[m];v=n-[n];[]表示取整。
圖1 二維空間的樣條插值
文中首先將所選圖像轉(zhuǎn)換成二值圖像,由于隨機(jī)噪聲的寬度可能小于結(jié)構(gòu)元素的寬度,而被混雜在處理后的圖像中,因此使用單個(gè)結(jié)構(gòu)元素的改進(jìn)形態(tài)學(xué)邊緣檢測(cè)算子(式(9))所得到的邊緣圖像仍然有噪聲存在,所以文中采用改進(jìn)形態(tài)學(xué)梯度濾波算子,即公式(10)進(jìn)行邊緣提取,所采用的結(jié)構(gòu)元素為
采集到的CCD圖像經(jīng)形態(tài)學(xué)梯度濾波算子處理后,得到一個(gè)包含邊緣點(diǎn)的向量組{E1,E2,……,En}。其中,Ei為由邊緣點(diǎn)相鄰2個(gè)像素點(diǎn)構(gòu)成的向量,分別沿邊緣垂直方向及梯度方向選取,得到原圖像的邊緣。其次利用三次樣條插值法對(duì)提取出的邊緣圖像進(jìn)行插值運(yùn)算,最后再利用形態(tài)學(xué)細(xì)化算子將邊緣進(jìn)行細(xì)化,可有效地檢測(cè)出圖像邊緣。此外,改進(jìn)形態(tài)學(xué)梯度濾波能夠克服線性濾波方法在平滑噪聲的同時(shí)造成圖像邊緣模糊的不足;同時(shí)易于并行計(jì)算,處理時(shí)間短。經(jīng)實(shí)驗(yàn)證明,此方法可行,且效果較理想。
該算法的實(shí)現(xiàn)過(guò)程如下:
(1)將原始圖像f(x,y)轉(zhuǎn)化為二值圖像f1(x,y);
(2)利用形態(tài)學(xué)梯度濾波算子求出二值圖像f1(x,y)的像素級(jí)邊緣圖像 f2(x,y),所采用的兩個(gè)結(jié)構(gòu)元素為[0 1 0;1 1 1;0 1 0]T和[1 0 1;0-1 0;1 0 1]T,計(jì)算形態(tài)學(xué)梯度濾波算子時(shí)采用兩個(gè)結(jié)構(gòu)元素對(duì)應(yīng)的形態(tài)學(xué)梯度的加權(quán)和;
(3)將(2)中得到的像素級(jí)邊緣圖像f2(x,y)采用三次樣條插值法進(jìn)行內(nèi)插運(yùn)算,得到插值后的邊緣圖像F(x,y),使邊緣定位于亞像素級(jí);
(4)利用數(shù)學(xué)形態(tài)學(xué)細(xì)化算子將(3)中得到的插值后的邊緣圖像F(x,y)進(jìn)行細(xì)化處理,得到齒輪圖像的邊緣,形態(tài)學(xué)細(xì)化處理中的參數(shù)細(xì)化次數(shù)定為n=25,如果細(xì)化次數(shù)太小,則不會(huì)出現(xiàn)明顯的細(xì)化效果;如果所選細(xì)化次數(shù)過(guò)大,則圖像邊緣會(huì)失真且邊緣不完整。
實(shí)驗(yàn)中所使用的圖像是一副齒輪圖像,運(yùn)用軟件MATLAB2008進(jìn)行該算法的仿真實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖2所示:圖2a為一副齒輪圖像,圖2b為利用二次曲線擬合亞像素邊緣檢測(cè)方法得到的邊緣圖像,此方法得到的邊緣圖像存在一些斷點(diǎn),連續(xù)性較差,這是因?yàn)樵诖謾z測(cè)過(guò)程中有些邊緣點(diǎn)未被檢測(cè)出,影響到局部邊緣點(diǎn)的定位精度。圖2c為利用Sobel算子與樣條插值法相結(jié)合得到的邊緣檢測(cè)結(jié)果,此圖像的邊緣周?chē)嬖谖⑿≡肼暎吘壊粔蚱交?,且邊緣較粗。圖2d為本文方法得到的邊緣檢測(cè)結(jié)果,文中方法的結(jié)果與另外兩種方法相比,不僅使檢測(cè)出的邊緣圖像比較連續(xù),減少了邊緣中的斷點(diǎn),并且有效地去除了圖像邊緣周?chē)奈⑿≡肼暎惯吘壉容^平滑,清晰地檢測(cè)出目標(biāo)圖像邊緣,使得齒輪圖像的邊緣清晰可見(jiàn)。
圖2 檢測(cè)方法對(duì)比圖
此算法對(duì)樣條插值法的亞像素邊緣檢測(cè)方法進(jìn)行了改進(jìn),在得到二值圖像后,運(yùn)用改進(jìn)的數(shù)學(xué)形態(tài)學(xué)梯度濾波算子對(duì)二值圖像進(jìn)行處理,與傳統(tǒng)方法不同的是,改進(jìn)的數(shù)學(xué)形態(tài)學(xué)濾波能夠克服線性濾波方法在平滑噪聲的同時(shí)造成圖像邊緣模糊的不足。通過(guò)仿真實(shí)驗(yàn)結(jié)果可以看出,運(yùn)用文中的方法檢測(cè)出的邊緣減少了斷點(diǎn),抗噪能力較強(qiáng),計(jì)算量小,處理速度較快,定位精度高,因而更有利于圖像的分析與處理。
[1] Rajab M I,Woolfson M S,Morgan S P.Application of region-based segmentation and neural network edge detection to skin lesions[J].Computerized Medical Imaging and Graphics,2004,28(1/2):61 -68.
[2] Canny J F.A computational approach to edge detection[J].IEEE T rans on PAMI,1985,8(6):679 -698.
[3] Hildreth E C.The detection of intensity changes by computer and biological vision system[J].Computer Vision,Graphics and Image Processing,1983,22(1):1-27.
[4]賀忠海,王寶光,廖怡白,等.利用曲線擬合方法的亞像素提取算法[J].儀器儀表學(xué)報(bào),2003,24(2):195-197.
[5]高世一,趙明揚(yáng),張雷.基于Zernike正交矩的圖像亞像素邊緣檢測(cè)算法改進(jìn)[J].自動(dòng)化學(xué)報(bào),2008,34(9):1163-1168.
[6]吳志鵬,劉金根,殷世明,等.紅外圖像的亞像素邊緣檢測(cè)[J].光電工程,2003,30(2):50 -52.
[7]閆麗麗,許長(zhǎng)輝,高井祥,等.基于數(shù)學(xué)形態(tài)學(xué)細(xì)化算子的改進(jìn) Canny算法研究[J].測(cè)繪科學(xué),2010,35(2):82-84.
[8]劉清,林土勝.基于數(shù)學(xué)形態(tài)學(xué)的圖像邊緣檢測(cè)算法[J].華南理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2008,36(9):113-116.
[9]楊述斌,彭復(fù)員.噪聲污染圖像中的廣義形態(tài)邊緣檢測(cè)器[J].計(jì)算機(jī)工程與應(yīng)用,2002,38(17):91 -92.