廖義德,雷小舟,楊 凱,楊曉東
(武漢工程大學(xué) 機(jī)電工程學(xué)院,武漢 430205)
邊緣提取是圖像處理中的較為基礎(chǔ)的問題之一,被廣泛地應(yīng)用在圖像分割、模式識別、圖像、圖像加密[1]等領(lǐng)域. 在圖像的邊緣提取領(lǐng)域,較為傳統(tǒng)且使用率較高的做法是使用梯度算子來實(shí)現(xiàn),通常有Sobel, LoG,以及Canny,這些算法實(shí)現(xiàn)起來較為簡單,但是存在一些問題. 如Sobel算法處理后的圖像雖然一致性較好,但是提取出來的邊緣可能較粗,因此無法提取出局部細(xì)節(jié)豐富的邊緣圖像;LoG和Canny在實(shí)際運(yùn)用過程中,由于參數(shù)對環(huán)境的依賴性較強(qiáng),所以對環(huán)境的適應(yīng)性較差,而且產(chǎn)生的圖像邊緣可能不連續(xù)以及可能存在偽邊緣. 因此,研究人員不斷提出新的算法思想來解決圖像的邊緣提取問題. Mallat[2]等提出了利用小波卷積核來計(jì)算圖像梯度的方法,通過求小波核函數(shù)的導(dǎo)數(shù)來求取圖像梯度,計(jì)算過程相對穩(wěn)定. Ren等[3]提出了將光強(qiáng)和內(nèi)部色差融合的邊緣提取算法,能獲得更多的圖像邊緣信息. Ortiz等[4]提出了基于雙色反射模型的彩色通道耦合分析來提取圖像的邊緣信息,其算法結(jié)構(gòu)簡單,對計(jì)算能力要求較低,且對噪聲和圖像光強(qiáng)變化不敏感. Drogoul等[5]提出了將拓?fù)涮荻确☉?yīng)用于各種噪聲和模糊圖像的邊緣檢測和去噪,通過計(jì)算穿孔、裂紋域以及每個噪聲模型的拓?fù)涮荻葋韺?shí)現(xiàn)圖像的邊緣提取,實(shí)驗(yàn)表明此方法具有有效性、魯棒性和快速性. 張捷等[6]提出了一種用于邊緣提取的細(xì)胞神經(jīng)網(wǎng)絡(luò)(cellular neural networks,CNN)模板的設(shè)計(jì)方法,該方法通過將模擬退火粒子群算法與細(xì)胞神經(jīng)網(wǎng)絡(luò)結(jié)合來提取圖像的邊緣信息. 楊婷等[7]提出了基于像素空間分布的閾值自適應(yīng)憶阻細(xì)胞神經(jīng)網(wǎng)絡(luò)方法來提取彩色圖像的邊緣信息,通過利用新型非線性兩端電路元件憶阻器來解決 CNN 的硬件實(shí)現(xiàn)難題,并且提高了細(xì)胞神經(jīng)網(wǎng)絡(luò)在彩色圖像邊緣提取的自適應(yīng)能力,具有良好的抗噪性.
可以看出,對于邊緣提取這個圖像處理中的經(jīng)典問題,學(xué)者們進(jìn)行了大量的研究. 本文通過將雙窗口區(qū)域信息引入Sigmoid函數(shù)來獲得圖像的邊緣信息,算法流程簡單,性能穩(wěn)定,通過設(shè)置不同環(huán)境下的多組實(shí)驗(yàn)表明,該方法可以提取出圖像的邊緣信息.
傳統(tǒng)的微分邊緣檢測算法由于采用較為單一的圖像像素點(diǎn)來進(jìn)行微分計(jì)算,因此獲得的信息較由一個像素點(diǎn)為中心的區(qū)域信息來說要少[8]. 通過引入?yún)^(qū)域信息,可以獲得單個像素點(diǎn)為中心的周圍區(qū)域內(nèi)的綜合信息,通過將這些信息加以利用,可以獲得更為豐富的邊緣信息. Etiene Vincent等[9]提出了一種函數(shù),通過判別當(dāng)前像素點(diǎn)是屬于目標(biāo)還是背景能夠用來描述區(qū)域信息. 孫根云等[10]受Etiene Vincent算法的啟發(fā),提出設(shè)置Sigmoid 函數(shù)來傳遞該像素點(diǎn)所在區(qū)域的信息來檢測圖像的邊緣,該方法原理簡單,性能穩(wěn)定,但是對于明暗不一致的情況適應(yīng)性較差. 孫根云等設(shè)置的Sigmoid函數(shù)具有以下形式:
(1)
ω(x,y)=t(I(x,y)-Imean(x,y)),
(2)
式(1)中,ω(x,y)代表對比函數(shù),用來表示區(qū)域內(nèi)的綜合信息;式(2)中,對于(x,y)處像素點(diǎn),其灰度值為I(x,y);以其為中心的某區(qū)域的像素平均值為Imean(x,y);t為數(shù)值變量,也可設(shè)置為t=Imax(x,y)-Imin(x,y),其中,Imax(x,y)及Imin(x,y)分別代表區(qū)域內(nèi)的最大值與最小值. 通過采用如上的Sigmoid函數(shù)和對比函數(shù)ω(x,y),孫根云等成功地提取出了模糊醫(yī)學(xué)圖像的邊緣,且邊緣寬度比較細(xì). 但對于明暗不一致的圖像,效果一般,為了彌補(bǔ)這個缺陷,與孫根云等提出的算法不同的是,本文采用的原理如下.
對于(x,y)處像素點(diǎn),其灰度值為I(x,y),設(shè)置以其為中心的雙窗口區(qū)域分別為Ω1,Ω2,采用正方形或者圓形,雙窗口大小分別為m,n,(m≠n≠0),為正方形邊長或圓形直徑;窗口內(nèi)的灰度平均值分別為IΩ1,IΩ2. 設(shè)置如下所示的Sigmoid函數(shù)以及對比函數(shù)ω(x,y).
(3)
(4)
式(3)中,Sigmoid輸出的激勵值范圍為[-1,1],而圖像的有效顯示區(qū)域?yàn)閇0,1],因此對于[-1,0]所在區(qū)間內(nèi)的激勵值設(shè)置為背景. 式(4)中,ε代表防止分母為0的極小數(shù)值常量,如10-9。
通過設(shè)計(jì)如上的雙窗口區(qū)域的局部灰度均值的比值來消除光照的影響.
在實(shí)際的計(jì)算過程中,除了可以直接輸出Sigmoid激勵值以外,還可以采用如下的計(jì)算方法來輸出當(dāng)前像素點(diǎn)為中心的所在區(qū)域的總激勵,以獲得更豐富的邊緣信息.
設(shè)置當(dāng)前像素點(diǎn)為中心的所在區(qū)域?yàn)棣?,窗口大小為k,總激勵為Ss,其中
(5)
在實(shí)驗(yàn)中進(jìn)一步發(fā)現(xiàn),采用如下計(jì)算方法可以使輸出圖像的對比度有所提高.
設(shè)窗口參數(shù)大小為m,n,k對原圖按照式(3)~(5)計(jì)算產(chǎn)生的總激勵值為S(m,n,k),相應(yīng)的有S(n,m,k). 其中S(m,n,k)≠S(n,m,k),代表意義不同,數(shù)值可能相同,不同是因?yàn)閷Ρ群瘮?shù)ω(x,y)中提到的區(qū)域灰度值發(fā)生了分子分母顛倒. 因此,將兩者結(jié)合,計(jì)算綜合灰度值Sc來獲得高對比度圖像.
(6)
為了獲得更快的計(jì)算速度,也可設(shè)置為
Sc=|S(m,n,k)|+|S(n,m,k)|.
(7)
因?yàn)榇翱诘拇笮绊戇吘壍膶挾?,?dāng)選擇較大窗口時,邊緣會隨之變寬,因此實(shí)際使用過程中需要針對不同的對象選擇合適的窗口大小. 除此之外,仍然存在圖像對比度偏低的問題,通過引入對比度算法如自適應(yīng)直方圖均衡化算法(AHE)來提高圖像的對比度[11].
具體算法步驟如下:
a) 輸入圖像并進(jìn)行歸一化;
b) 選擇合適的窗口數(shù)值,即m,n,k值;
c) 按式(3)(4)計(jì)算Sigmoid激勵值;
d) 按式(5)計(jì)算總激勵Ss,結(jié)果保存為R1;
e) 對結(jié)果R1按式(6)或式(7)計(jì)算綜合灰度值Sc,結(jié)果保存為R2;
f)對結(jié)果R1,R2進(jìn)行圖像對比度增強(qiáng),分別獲得結(jié)果R3,R4,人工比較結(jié)果R3,R4,選取兩者中邊緣提取效果較好的結(jié)果圖像.
為了驗(yàn)證本文方法的有效性,設(shè)計(jì)了多組實(shí)驗(yàn),其中的一些實(shí)驗(yàn)結(jié)果如下所述. 如圖1為光強(qiáng)分布嚴(yán)重不均勻的路標(biāo)圖像.
從圖2~6的結(jié)果分別可以看出,Sobel算法的結(jié)果獲得了較為完整的路標(biāo)邊緣,但磚塊的邊緣細(xì)節(jié)不夠完整;LoG算法和Canny算法則存在明顯的細(xì)節(jié)丟失,尤其是存在邊緣線段不連續(xù)以及偽邊緣的問題;孫根云等的算法對光照敏感,產(chǎn)生了大量的噪聲和偽邊緣,路標(biāo)的外輪廓邊緣幾乎完全與偽邊緣重疊. 本文算法產(chǎn)生的結(jié)果中路標(biāo)邊緣線段連續(xù)完整,而且能夠保留足夠多的磚塊邊緣細(xì)節(jié). 除此之外,相比于LoG算法和Canny算法,本文算法僅有3個窗口的大小參數(shù)需要調(diào)整,其余采用固定的形式. 在這里,設(shè)定窗口大小為分別為m=4,n=8,k=8. 因參數(shù)不存在小數(shù),故參數(shù)調(diào)整較LoG算法和Canny算法要方便. 而且本文提出的方法在一定程度上彌補(bǔ)了孫根云等提出的算法的缺陷,即對于明暗分布不一致的圖像,能夠準(zhǔn)確的提取其邊緣信息.
圖1 受光強(qiáng)污染的路標(biāo)Fig.1 A road sign with unevendistribution of light intensity圖2 Sobel算法提取結(jié)果Fig.2 Algorithm results of Sobel 圖3 LoG算法提取結(jié)果Fig.3 Algorithm results of LoG圖4 Canny算法提取結(jié)果Fig.4 Algorithm results of Canny圖5 孫的算法提取結(jié)果Fig.5 Algorithm results of Sun圖6 本文算法提取結(jié)果Fig.6 Algorithm results of this paper
對于光照不均的情況,本文方法和Sobel算法明顯優(yōu)于LoG、Canny以及孫根云等的算法. 為了更全面地比較本文方法與Sobel算法之間的優(yōu)劣性,另外考慮了兩種情況,一種是背景復(fù)雜,局部細(xì)節(jié)豐富的圖像,如圖7所示的100美元圖像,一種是模糊邊緣的醫(yī)學(xué)圖像,如圖8所示的人體頭顱X光照圖片.
圖7 100美元圖像Fig.7 100 dollar image
圖8 人體頭顱X光照圖Fig.8 X ray image of human head
對于如圖7所示的100美元圖像,Sobel及本文方法邊緣檢測結(jié)果如圖9~10所示.
圖9 Sobel算法結(jié)果Fig.9 Results of Sobel algorithm
圖10 本文算法結(jié)果Fig.10 Algorithm results of this paper
圖10中,算法參數(shù)設(shè)置為:m=4,n=2,k=2. 從圖9和圖10對比可以看出,Sobel算法產(chǎn)生了較粗的邊緣,且人物頭像兩側(cè)的橢圓圈以及100字符兩側(cè)的花紋基本被白化帶淹沒(白化帶的寬度可以用來形容邊緣的寬度),因此,對于橢圓圈以及花紋的邊緣提取,Sobel算法并不理想.本文方法產(chǎn)生的白化帶寬度較之Sobel算法要細(xì),且100字符兩側(cè)的花紋清晰可見. 因此,此種環(huán)境下,本文方法產(chǎn)生的邊緣的寬度質(zhì)量比Sobel算法的效果要好,且在細(xì)節(jié)方面明顯優(yōu)于Sobel算法.
對于圖8所示的具有模糊邊緣的人體頭顱X光照圖片,Sobel算法及本文方法產(chǎn)生的結(jié)果分別如圖11~12所示.
此處,參數(shù)設(shè)置為:m=4,n=2,k=2. 從圖11中可以看出,對于這種具有模糊邊緣的人體頭顱X光照圖片,Sobel算法產(chǎn)生的結(jié)果由于白化帶較寬,存在邊緣重疊現(xiàn)象,如頭顱的外輪廓線以及左右兩側(cè)模糊區(qū)域. 因此,其邊緣提取的結(jié)果不理想. 而本文方法雖然對比度沒有Sobel算法高,但產(chǎn)生的白化帶較窄,邊緣較細(xì),且可以明顯地區(qū)分出頭顱的外輪廓線及左右兩側(cè)模糊區(qū)域,因此,此種環(huán)境下,本文方法優(yōu)于Sobel算法.
圖11 Sobel算法結(jié)果Fig.11 Algorithm results of Sobel
圖12 本文方法結(jié)果Fig.12 Algorithm results of this paper
3種不同環(huán)境下的實(shí)驗(yàn)可以看出,對于光照分布不均且邊緣明顯的圖像,本文方法與Sobel算法都能獲得較好的邊緣檢測結(jié)果.由于本文提出的方法引入了雙窗口局部灰度均值的比值來度量邊緣的顯著程度, 與LoG、Canny以及孫根云等的算法相比,能更好地適應(yīng)光照的變化. 在與Sobel算法的全面比較后發(fā)現(xiàn),對于背景復(fù)雜、局部細(xì)節(jié)豐富及邊緣較為模糊的圖片,本文方法較Sobel算法處理后的效果更好,邊緣寬度更細(xì)且局部細(xì)節(jié)更加豐富.因此,本文提出的方法具有一定的通用性,而且計(jì)算過程簡單,性能穩(wěn)定,具有一定的實(shí)用價值.