許 黎,侯 杰,陳慶利,秦亞琦,彭乙翠, 黃 果
(樂山師范學(xué)院互聯(lián)網(wǎng)自然語言智能處理四川省高等學(xué)校重點實驗室,樂山 614000)
圖像去噪是數(shù)字圖像處理中一個基礎(chǔ)且重要的研究部分,具有一定的理論價值和實際意義.為了達(dá)到后續(xù)圖像處理所要求的清晰度和準(zhǔn)確度,我們需要在進(jìn)行模式識別、邊界檢測、提取以及分割圖像[1-5]之前進(jìn)行圖像噪聲消除.在采集、傳輸和處理圖像的過程中,外界環(huán)境、自身設(shè)備性能以及在信息傳輸轉(zhuǎn)換階段的影響會導(dǎo)致圖像的細(xì)節(jié)部分丟失和質(zhì)量下降[6-10].椒鹽噪聲是一種比較常見的圖像噪聲,通常是圖像在生成過程中或者在傳輸過程中產(chǎn)生的[11].椒鹽噪聲的產(chǎn)生與圖像內(nèi)容并沒有聯(lián)系,它是一種隨機出現(xiàn)的像素極值點,導(dǎo)致圖像產(chǎn)生大量白點和黑點,從而降低圖像視覺質(zhì)量.高密度的椒鹽噪聲會完全遮擋原始圖像的信息內(nèi)容,嚴(yán)重影響圖像質(zhì)量,也給圖像的后續(xù)研究和分析造成困難[12].
針對椒鹽噪聲的去除,近年來研究人員提出了許多有效的去噪算法.其中,Nodes等最早提出一種非線性標(biāo)準(zhǔn)中值濾波器[13](Median Filter,MF).該濾波器的去噪效果只能針對噪聲濃度在30%以內(nèi)的含噪圖像進(jìn)行去噪,若圖像的噪聲濃度超出這個范圍,該算法將會丟失原圖像大量邊緣信息,導(dǎo)致去噪效果差.之后為了克服高密度噪聲去噪性能差這一缺點, Yu等提出了一種自適應(yīng)中值濾波器[14](Adaptive Median Filter,AMF).該濾波器根據(jù)預(yù)設(shè)條件,動態(tài)地改變工作時濾波窗口尺寸,達(dá)到兼顧去噪性能和保護圖像細(xì)節(jié)的效果.該濾波器在處理低密度噪聲時去噪效果不錯,但是在噪聲出現(xiàn)概率比較高時,需要通過增大濾波器預(yù)設(shè)窗口尺寸.這樣將會導(dǎo)致圖像變得模糊不清,降低圖像的視覺效果.以上兩種傳統(tǒng)算法既沒有考慮到保護圖像的細(xì)節(jié)信息,也沒有對極值像素點是否為噪聲進(jìn)行判斷,全部認(rèn)定為噪聲進(jìn)行處理,這樣就會丟失部分有用信息,破壞原始圖像的像素信息[15].為了改善以上缺點,Srinivasan 等提出一種基于決策的中值濾波器[16](Decision-Based Algorithm Median Filter,DBAMF).該算法使用3*3的濾波窗口進(jìn)行去噪,首先對像素進(jìn)行識別處理,如果像素值是0或255,則定為噪聲像素,在噪聲點的濾波窗口內(nèi)使用鄰域的中值替換噪聲像素.但是對高密度噪聲的圖像,中值可能是噪聲像素0或255,而且這種重復(fù)的處理方式會使降噪后的圖像產(chǎn)生條紋效應(yīng)[17].針對該問題,Esakkirajan等提出一種基于改進(jìn)決策的非對稱修正中值濾波器[18,19](Modified Decision Based Unsymmetric Trimmed Median Filter,MDBUTMF).該算法對于高密度噪聲中3*3鄰域窗口內(nèi)像素值都為0或255的情況采用所有像素的均值代替中值,達(dá)到了良好的去噪效果,但在較高噪聲情況下的去噪效果仍不太理想.
上述所有去噪算法,都只是基于遍歷思想進(jìn)行處理,即只對圖像的每個像素依次濾波得到去噪圖像.與這類算法相比,基于循環(huán)迭代的思想,能夠更好地去除高密度噪聲圖像.即通過多次判斷,對已濾波輸出的圖像進(jìn)行再次處理,直到符合條件停止循環(huán).這種方式能夠更好地恢復(fù)噪聲圖像的原始細(xì)節(jié)信息[20,21].針對上述問題和基于循環(huán)迭代思想,本文提出了結(jié)合循環(huán)迭代方法的自適應(yīng)中值去噪新模型(New Adaptive Median Denoising,NAMD).該模型在固定的濾波窗口尺寸內(nèi),通過計算窗口內(nèi)非椒鹽噪聲的中值和均值,算法自適應(yīng)選擇其一替換噪聲像素,根據(jù)現(xiàn)存噪聲數(shù)量自適應(yīng)進(jìn)行算法迭代,從而達(dá)到基本消除椒鹽噪聲的效果,提高了對高密度噪聲的濾波性能;同時使用固定的小窗口尺寸,克服了現(xiàn)有算法不能更好地保留圖像細(xì)節(jié)的缺點.通過大量的仿真實驗表明,與中值濾波等傳統(tǒng)算法相比,本文所提算法對各種密度噪聲圖像都有更好的去噪性能和視覺效果.
MF算法是一種非線性濾波器,它是以噪聲點為中心建立一個濾波模板,把對該點周圍3*3或者5*5為窗口的鄰域Sxy中的像素點按照灰度值大小排序生成數(shù)組gs,t,最后用gs,t的中間值替換模板的中心噪聲點fx,y[22],即
fx,y=median{gs,t|(s,t)∈Sxy}
(1)
該算法使用像素鄰域得到的中值更加接近噪聲點的真實值,從而達(dá)到去除圖像中的噪聲點效果.因為中值濾波的輸出灰度值是由鄰域窗口內(nèi)中值大小決定的,所以其對于窗口中的脈沖噪聲處理效果較好,可以在有效去除脈沖噪聲的同時,減小圖像的模糊.標(biāo)準(zhǔn)中值濾波雖然是一種最簡單而且能有效去除椒鹽噪聲的方法,但是會引起圖像少量的不連續(xù)性,從而致使圖像處理達(dá)不到預(yù)期效果.圖1是以3*3窗口為例表示的濾波原理.
(a)為待處理像素
AMF算法對像素窗口內(nèi)最值進(jìn)行識別,通過自適應(yīng)判斷選擇濾波窗口尺寸,兼顧去噪聲作用和保護細(xì)節(jié)的效果,去噪能力提升較大.但是其判斷噪聲的方式過于簡單,在實際應(yīng)用中容易產(chǎn)生誤檢和漏檢,而且如果濾波窗口過大,圖像的細(xì)節(jié)保護效果會降低.我們首先計算濾波窗口內(nèi)的中值、最大值和最小值,當(dāng)窗口內(nèi)中值為噪聲點,不作處理,進(jìn)行窗口尺寸擴大,在更大的范圍內(nèi)尋找一個合適的非噪聲點[23].當(dāng)窗口內(nèi)中值為非噪聲點時,我們判斷待處理像素為噪聲點(待處理像素為最大值或最小值),則使用中值代替該像素.若待處理像素為非噪聲點,則保留當(dāng)前像素點灰度值.圖2為AMF算法濾波方式說明.
(a)待處理像素
MDBUTMF算法首先檢測脈沖噪聲來處理損壞的圖像,檢查處理像素是否為噪聲點.如果待處理像素位于最大灰度值和最小灰度值之間,那么它是非噪聲像素,則保持不變;如果待處理像素為最大或最小灰度值,則它為噪聲像素需作如下處理.以該點為中心,建立3*3的濾波窗口,將窗口內(nèi)所有元素按遞增或遞減順序排列,并刪除其中像素為0和255的值,然后取剩余像素的中值,取代噪聲像素;若窗口內(nèi)全是0和255,則求取窗口內(nèi)所有像素值均值,取代噪聲像素[18].這種處理方式,因為提前刪除窗口內(nèi)0和255的像素值,提高了去除噪聲的能力.圖3為對兩種去噪方式的舉例說明.
(a)待處理像素
NAMD算法按照先檢測后濾波的步驟,在進(jìn)行噪聲識別時,采用像素極值法進(jìn)行檢測,將像素點分為非噪聲點和疑似噪聲點兩種.下一步我們對疑似噪聲和非噪聲點進(jìn)行不同的操作處理,通過自適應(yīng)循環(huán)迭代濾波,從而有效地去除圖像噪聲.極值法進(jìn)行噪聲識別步驟如下:在uint8圖像中,若像素值是最小灰度值0或最大灰度值255時,則將其視為疑似噪聲點,需要進(jìn)行二次判斷;若像素值處于0和255之間,則將其視為非噪聲像素(信號點),不進(jìn)行任何處理,輸出原像素值.該類噪聲點的模型可描述為
(1)
其中,Susn為疑似噪聲點;Iclean為非噪聲點.
由于噪聲檢測模型可能出現(xiàn)誤檢測噪聲情況,所以NAMD算法對檢測出的疑似噪聲點設(shè)置了二次自適應(yīng)判斷.首先我們采用3*3的濾波窗口進(jìn)行復(fù)檢,統(tǒng)計窗口內(nèi)非噪聲點的個數(shù)設(shè)為count.如果count為0,說明該疑似噪聲點可能為誤檢噪聲點,標(biāo)記該點Flag=1,繼續(xù)完成待處理點的濾波工作.在第一次處理完噪聲圖像后,我們將得到的含有可能為誤檢噪聲的圖像帶入算法,再次進(jìn)行處理.如果在可能為誤檢噪聲點濾波窗口內(nèi)所統(tǒng)計非噪聲點的個數(shù)count為0,則說明該點確定為誤檢噪聲點,非圖像噪聲,直接輸出像素值;如果count不為0,則為噪聲點,進(jìn)行去噪處理.
如圖4所示,本文先對圖像疑似噪聲點預(yù)處理,通過極值判斷法,將待處理像素點進(jìn)行區(qū)分得到疑似噪聲點;再確定噪聲點處理,將已確定噪聲點用鄰域內(nèi)的中值或均值自適應(yīng)替換,從而完成去噪;最后對疑似噪聲點二次處理,通過算法內(nèi)置參數(shù)和條件,進(jìn)一步判斷疑似噪聲點是否為噪聲點,如果是噪聲點則重復(fù)上面操作,否則去噪結(jié)束.
圖4 NAMD算法流程圖
如算法1所示,NAMD算法對圖像疑似噪聲點預(yù)處理,區(qū)分得到疑似和確定噪聲點,再對確定噪聲點處理,最后對疑似噪聲點二次處理,進(jìn)一步對疑似噪聲點進(jìn)行判斷,如果是噪聲點則重復(fù)以上操作,否則去噪結(jié)束.
算法1NAMD算法
步驟1:輸入一副M*N含椒鹽噪聲的圖像I,初始化一個與待處理圖像等大小的全0矩陣Flag.
步驟2:對圖像I中待處理像素Ix,y進(jìn)行判斷,如果符合0 (2) 步驟3:以Ix,y為中心,建立3*3尺寸濾波窗口記為模板P,統(tǒng)計模板P中符合0 (1)若count=0,判斷Flagx,y值是否等于1,選擇進(jìn)行兩種操作如式(3)所示. ① 若Flagx,y=0,則該點為疑似噪聲點,保持像素值不變輸出,并改變Flagx,y=1. ②Flagx,y=1,則該點為非噪聲點,保持像素值不變輸出,并改變Flagx,y=0.該步驟公式表示為 (3) (2)若count>0,判斷Mod(count,2)值是否為0,選擇進(jìn)行如下兩種操作. ① Mod(count,2)=0,則使用模板P中所有非噪聲點的均值代替噪聲點Ix,y輸出; ② Mod(count,2)=1,則使用模板P中所有非噪聲點的中值代替噪聲點Ix,y輸出;均值公式和該步驟公式如下. (4) (5) 步驟4:判斷是否需要再次對已處理圖像Y進(jìn)行去噪處理.通過判斷Flag數(shù)組是否為全0矩陣,若Flag為全0矩陣,則說明當(dāng)前圖像Y已不含噪聲,直接結(jié)束濾波并輸出去噪圖像Y.如果Flag中含有非0元素,則說明處理生成的當(dāng)前圖像Y含有噪聲點,需再次進(jìn)行濾波處理,進(jìn)入步驟5. 步驟5:將當(dāng)前初步去噪圖像Y,再次帶入算法,重復(fù)步驟2~5,迭代至Flag成為全0矩陣,即最初輸入含噪圖像I中的椒鹽噪聲已經(jīng)被完全去除. 通過上述處理步驟可知,NAMD算法選擇固定3*3尺寸的濾波窗口,這樣不僅可以在去除噪聲時提高濾波效率,還可以最大程度地恢復(fù)圖像細(xì)節(jié)部分.另外本文引入Flag矩陣和疑似噪聲的思想后,可以提高噪聲的去除率,并且可以大幅降低噪聲誤處理率(噪聲誤處理率=非噪聲點當(dāng)作噪聲點處理的像素數(shù)/總像素數(shù)).步驟3中使用Mod(count,2)思想,是由于count如果是偶數(shù)則中值為該組數(shù)據(jù)中位數(shù)的平均值,所以NAMD將這種情況改中值為均值,使用整組數(shù)據(jù)的均值代替噪聲點,從而使處理后的數(shù)據(jù)與圖像原始數(shù)據(jù)的關(guān)聯(lián)性更高. 為驗證本文提出的NAMD算法的去噪效果,我們與現(xiàn)有算法進(jìn)行仿真實驗比較.實驗選取了3幅圖像512*512 Lena、512*512 Baboon和512*512 Woman的8位灰度圖像進(jìn)行實驗,對比了MF算法,AMF算法,MDBUTMF算法和NAMD算法的去噪性能.對MF算法設(shè)置3*3的窗口尺寸,AMF算法設(shè)置最大窗口尺寸為7*7,MDBUTME算法設(shè)置3*3的窗口尺寸,NAMD算法采用3*3的窗口尺寸,以相應(yīng)去噪?yún)?shù)作為實驗數(shù)據(jù)進(jìn)行對比.實驗環(huán)境為Intel(R)Core(TM)i5-1035G1 CPU @ 1.00 GHz,內(nèi)存為8 GB,操作系統(tǒng)為64位Windows10,仿真所用軟件Matlab R2014a. 為了比較本文提出的NAMD算法與對照濾波算法的去噪性能,本實驗采用文獻(xiàn)[24]提出的峰值信噪比(PSNR)和文獻(xiàn)[25]中的結(jié)構(gòu)相似性指數(shù)(SSIM)兩種參數(shù)作為衡量各濾波算法對照試驗的評價指標(biāo). (1)峰值信噪比原圖像與被濾波處理后的圖像之間的均方誤差相對于(2n-1)2的對數(shù)值(信號最大值的平方,n是每個采樣值的比特數(shù)),PSNR值越大,代表濾波后的圖像失真越少,濾波效果越好.峰值信噪比公式定義為 (6) (7) 其中,M和N表示圖像的長和寬;Ii,j,Yi,j分別表示原始圖像和濾波后的圖像所對應(yīng)圖像第i行第j列像素點的灰度值;EMSE代表圖像的均方誤差.在8位灰度圖像中n表示8,即信號最大值為255. (2)結(jié)構(gòu)相似性是一種衡量兩幅圖像相似度的指標(biāo),代入原圖和濾波后的兩幅圖像,結(jié)構(gòu)相似性數(shù)值越大,說明算法的濾波效果越好.結(jié)構(gòu)相似性公式定義為 (8) 其中,μI,μY表示原圖像I和濾波后圖像Y的均值;σI,σY表示圖像I和圖像Y的標(biāo)準(zhǔn)差;σIY表示圖像I和圖像Y的協(xié)方差;式中C1=(K1×L),C2=(K2×L),其中,K1=0.01,K2=0.03,L=255.SSIM的取值范圍為-1到1,當(dāng)輸入同一幅圖像計算時,SSIM的值等于1. 實驗1:本文使用Lena,Baboon和Woman灰度圖像,分別添加密度為10%、50%和90%的椒鹽噪聲. 圖5~圖7中(a)~(e)依次為含噪圖像、MF濾波、AMF濾波、MDBUTMA濾波和NAMD濾波去噪效果對比圖.由圖可知,MF和AMF在含有較小噪聲情況時,去噪效果較好;但在高密度噪聲下,去噪效果非常不理想;尤其是MF算法在90%噪聲下濾波后的圖像仍是噪聲圖像,原圖像信息幾乎全部丟失.MDBUTMF和NAMD算法在低噪聲下,去噪效果比較好,而且對于圖像的細(xì)節(jié)信息還原度非常高;在高噪聲中,MDBUTMF濾波圖像效果較好,但是相比NAMD算法,還原圖像細(xì)節(jié)紋理信息能力較差.綜合來看,NAMD算法無論在低噪聲還是高噪聲中,去噪效果和紋理信息還原能力上均表現(xiàn)優(yōu)異. (a)Noise-image (b)MF (c)AMF (d)MDBUTMF (e)NAMD (a)Noise-image (b)MF (c)AMF (d)MDBUTMF (e)NAMD (a)Noise-image (b)MF (c)AMF (d)MDBUTMF (e)NAMD 圖8為Lena,Baboon和Woman三幅圖像含有90%椒鹽噪聲的濾波局部放大區(qū)域.從圖中所標(biāo)記的矩形框內(nèi),我們對比發(fā)現(xiàn),NAMD算法處理得到的圖像去噪效果更強,細(xì)節(jié)還原能力更強,處理后的圖像所包含的紋理信息更多,更加接近原始圖像. (a)Original-image (b)MDBUTMF (c)NAMD 實驗2:本文使用原圖像像素區(qū)域性全為0或255的極值點的圖像,加入20%的噪聲. 圖9是AMF和NAMD算法濾波后的圖像,圖10是圖9局部放大圖.與圖9對照后發(fā)現(xiàn)AMF算法中誤將原像素當(dāng)作噪聲處理,使圖像去噪處理后得到的效果非常差.由于AMF算法進(jìn)行噪聲判斷時,需要不斷擴大窗口尺寸,而在較小的尺寸下,無法判斷像素點是否為原始圖像像素,以致類似實驗2所選特殊圖像的去噪性能大大下降.而在NAMD算法中,通過相應(yīng)算法判斷,識別出極值點并非噪聲點,從而大幅降低噪聲誤處理率. (a)Original-image (b)Noise-image (c)AMF (d)NAMD (a)Original-image (b)Noise-image (c)AMF (d)NAMD 實驗3:為定量對照試驗,我們在基于Lena圖像中加入密度為10%~90%的椒鹽噪聲,然后使用4種濾波算法進(jìn)行處理.表1和表2分別是Lena圖像去噪后的PSNR值和SSIM值.評價指標(biāo)數(shù)值進(jìn)一步證明NAMD算法的濾波效果更好. 表1 10%~90%椒鹽噪聲密度下SSIM值對比 表2 10%~90%椒鹽噪聲密度下PSNR值對比 由表1、表2及圖11可知,MF和AMF兩種算法的去噪性能較差,不能有效去除噪聲,同時也無法保留圖像的細(xì)節(jié)信息;無論在低密度還是高密度噪聲,MF算法的SSIM和PSNR兩個評價指標(biāo)的數(shù)值,都與其他3種去噪算法數(shù)值差距較大;而AMF算法,在低密度噪聲中,其兩種指標(biāo)數(shù)值較于MDUTMF和NAMD算法差距較小,但在高密度噪聲中,評價指標(biāo)數(shù)值仍差距過大.本文所提NAMD算法在含60%以下噪聲和MDBUTMF的去噪性能基本一致,PSNR數(shù)值相差0.6~2 dB不等,SSIM數(shù)值差距不大;但在高密度噪聲下去噪聲效果尤為顯著,PSNR相差達(dá)到3 dB,SSIM數(shù)值也差了0.1,明顯優(yōu)于其他3種算法.在引入噪聲二次判斷和循環(huán)迭代的思想后,NAMD算法在有效去除噪聲的同時,還能更好地保留圖像的細(xì)節(jié)紋理信息.綜上所述,本文NAMD算法的主觀感受和客觀數(shù)值方面都優(yōu)于其他算法,有較好的去噪效果. (a) 由于圖像處理技術(shù)快速發(fā)展,其在醫(yī)學(xué)影像、遙感技術(shù)和生物識別等領(lǐng)域應(yīng)用需求持續(xù)增大,所以高質(zhì)量的圖像成為這些領(lǐng)域應(yīng)用圖像的基礎(chǔ)條件,但是圖像在采集傳輸?shù)倪^程中不可避免會被噪聲所污染,因此去除噪聲,恢復(fù)圖像原有信息成為研究熱點[26,27].針對已有椒鹽噪聲濾波算法去噪性能差和容易使濾波后圖像模糊的問題,本文基于循環(huán)迭代的思想,提出NAMD算法,該算法首先進(jìn)行噪聲檢測,對噪聲像素和非噪聲像素區(qū)別處理來保護非噪聲像素;然后,再通過固定3*3小尺寸的濾波窗口,更好地保護了圖像細(xì)節(jié);最后,采用循環(huán)迭代思想處理噪聲像素,從而達(dá)到完全去除椒鹽噪聲目的,進(jìn)而使高密度椒鹽噪聲圖像的去噪性能大幅提升.通過仿真實驗與其他算法進(jìn)行對比,從主觀視覺和客觀數(shù)據(jù)兩方面進(jìn)行比較分析,本文NAMD算法具有更強的去噪性能和更好的恢復(fù)圖像細(xì)節(jié)能力,尤其是在高密度噪聲下,去噪性能更加突出.然而,本文只是針對椒鹽噪聲圖像做去噪處理,因此還要優(yōu)化.去除其他類型噪聲方法是今后的研究方向.4.1 仿真實驗設(shè)計
4.2 仿真結(jié)果及數(shù)據(jù)說明