雷繼海
(隴東學(xué)院電氣工程學(xué)院,甘肅 慶陽 745000)
圖像在獲取、傳輸以及存儲過程中,極易受到外界噪聲干擾,造成圖像視覺質(zhì)量下降,嚴(yán)重時(shí)甚至可能導(dǎo)致圖像中某些重要信息丟失,給圖像的后續(xù)處理帶來極大不便。其中,脈沖噪聲較為普遍[1]。傳統(tǒng)的處理方法是采用中值濾波算法對其進(jìn)行消除,但是存在很多弊端。為了彌補(bǔ)傳統(tǒng)中值濾波算法的不足之處,學(xué)者們又相繼提出了基于加權(quán)方法的各類中值濾波算法,并不斷對其改進(jìn),以期對濾波結(jié)果進(jìn)行優(yōu)化[2-4]。這些算法雖然取得了較好的濾波效果,但是在濾波時(shí)并沒有對噪聲點(diǎn)與非噪聲點(diǎn)進(jìn)行有效區(qū)分,在處理噪聲點(diǎn)的同時(shí),對非噪聲點(diǎn)也進(jìn)行了一定程度的處理,使得處理后的圖像變得模糊。
針對上述算法對噪聲點(diǎn)與非噪聲點(diǎn)整體處理的不足,學(xué)者們又提出了先實(shí)現(xiàn)噪聲檢測而后進(jìn)行噪聲剔除方案。其中具有代表性的方法有極值中值濾波(extremum median filtering,EMF)、開關(guān)中值濾波(switching median filtering,SMF)以及相應(yīng)的改進(jìn)算法等[5-11]。這些方法極大地改善了濾波性能,較為完整地保留了濾波后圖像的細(xì)節(jié)信息。但是較高密度的噪聲在剔除噪聲點(diǎn)后,往往會出現(xiàn)加大面積的空缺,無法較為精準(zhǔn)地對噪聲點(diǎn)進(jìn)行恢復(fù),濾波能力顯得不足。
對于高密度噪聲的處理,當(dāng)前普遍的做法是采用各種結(jié)構(gòu)較為復(fù)雜的算法,包括自適應(yīng)中值濾波(adaptive median filtering,AMF)、基于小波變換的算法、決策算法以及當(dāng)前研究較為集中的基于深度學(xué)習(xí)的各類算法等[12-17]。這些算法的提出與應(yīng)用,對圖像噪聲的處理產(chǎn)生了極大影響,使得噪聲的處理效果有了很大提升。但是這些算法在處理含有噪聲的圖像時(shí),對參數(shù)設(shè)置的依賴性較大,不同的參數(shù)會對濾波結(jié)果產(chǎn)生不同影響。
結(jié)合上述脈沖噪聲檢測與恢復(fù)方法的不足,本文提出了一種基于像素值分類的脈沖噪聲檢測與恢復(fù)算法。該算法根據(jù)圖像中脈沖噪聲的特點(diǎn),以像素值為0或255的點(diǎn)為中心點(diǎn)選取濾波窗口,對濾波窗口中的像素點(diǎn)進(jìn)行精確分類,并對分類后的像素點(diǎn)采用不同的處理方法進(jìn)行噪聲檢測與恢復(fù),以期達(dá)到較為理想的處理結(jié)果。
在一幅數(shù)字化圖像中,脈沖噪聲總是數(shù)字化為極值(純黑或純白)。由于這一結(jié)果,負(fù)脈沖以一個(gè)黑點(diǎn)出現(xiàn)在圖像中,正脈沖以一個(gè)白點(diǎn)出現(xiàn)在圖像中。對于一個(gè)8位圖像而言,意味著脈沖噪聲為0或255。令S為不含噪聲的原始圖像、Y為帶有脈沖噪聲的圖像,則脈沖噪聲的數(shù)學(xué)模型可表示為:
Yij={0,Pa255,PbSij,1-(Pa+Pb)}
(1)
式中:Yij為脈沖噪聲圖像Y在(i,j)點(diǎn)的像素值;Sij為不含噪聲的原始圖像S在(i,j)點(diǎn)的像素值;Pa為含噪圖像中負(fù)脈沖噪聲出現(xiàn)的概率;Pb為正脈沖噪聲出現(xiàn)的概率。
使用傳統(tǒng)均值濾波時(shí),窗口大小的選取直接影響圖像邊緣以及細(xì)節(jié)信息。本文對均值濾波算法進(jìn)行了改進(jìn),利用了如圖1所示的濾波窗口結(jié)構(gòu),選取絕對差最小的兩個(gè)點(diǎn)的均值與待處理點(diǎn)進(jìn)行運(yùn)算,得到均值濾波結(jié)果?;谙袼刂捣诸惖脑肼暀z測與恢復(fù)濾波(based on pixel value classification filtering,BPVCF)是從脈沖噪聲像素值為0或255這一特點(diǎn)出發(fā),假設(shè)原始圖像中像素值為0或255的像素點(diǎn)全為噪聲點(diǎn),以噪聲點(diǎn)為中心設(shè)計(jì)濾波窗口,對窗口內(nèi)的各點(diǎn)進(jìn)行分類;依據(jù)分類結(jié)果對窗口中像素值為0或255的點(diǎn)作進(jìn)一步判斷,得到噪聲點(diǎn)與可疑噪聲點(diǎn);剔除噪聲點(diǎn),保留非噪聲點(diǎn)與可疑噪聲點(diǎn);依據(jù)窗口中剩余像素點(diǎn)的數(shù)目,采用不同方法進(jìn)行噪聲恢復(fù)。對于原始圖像中像素值在0到255之間的像素點(diǎn),不認(rèn)為其是噪聲點(diǎn)且不作處理,保留原始像素值。算法具體過程如下。
圖1 濾波窗口結(jié)構(gòu)示意圖
假設(shè)F=[p(i,j)]是以像素p(i,j)組成的、大小為m×n的含有脈沖噪聲的原始圖像。其中,i和j的范圍為1~m和1~n,0≤p(i,j)≤255。
①對于所有的i和j,如果p(i,j)=0或255,以該點(diǎn)為中心選取3×3的濾波窗口,對窗口內(nèi)的像素點(diǎn)作如下分類并處理。
第一類:若濾波窗口中除中心點(diǎn)外,剩余點(diǎn)像素值滿足(0
第二類:若濾波窗口中除中心點(diǎn)外,剩余點(diǎn)像素值滿足(240
0的點(diǎn)參與噪聲恢復(fù)運(yùn)算。此時(shí),當(dāng)選取點(diǎn)的個(gè)數(shù)不少于3個(gè)時(shí),以所選點(diǎn)作中值濾波運(yùn)算,以中值濾波結(jié)果M替換中心點(diǎn)像素值。當(dāng)選取點(diǎn)的個(gè)數(shù)為1時(shí),直接以該點(diǎn)像素值替換中心點(diǎn)像素值;當(dāng)選取點(diǎn)的個(gè)數(shù)為2時(shí),以這兩點(diǎn)平均值替換中心點(diǎn)像素值。
第三類:若濾波窗口中除中心點(diǎn)外,剩余點(diǎn)像素值滿足(10≤p≤240)≠?,則認(rèn)為窗口中像素值為0和255的點(diǎn)為噪聲點(diǎn)。選取窗口中像素值10≤p≤240的點(diǎn)參與噪聲恢復(fù)運(yùn)算。此時(shí),當(dāng)選取點(diǎn)的個(gè)數(shù)不少于3個(gè)時(shí),以所選點(diǎn)作中值濾波運(yùn)算,以中值濾波結(jié)果M替換中心點(diǎn)像素值。當(dāng)選取點(diǎn)的個(gè)數(shù)為1時(shí),直接以該點(diǎn)像素值替換中心點(diǎn)像素值;當(dāng)選取點(diǎn)的個(gè)數(shù)為2時(shí),以這兩點(diǎn)平均值替換中心點(diǎn)像素值。
第四類:若窗口中所有點(diǎn)的像素值為0或255時(shí),無法對中心點(diǎn)作出有效判斷,將3×3濾波窗口擴(kuò)大到5×5,再對該窗口內(nèi)的所有點(diǎn)按照第一類和第二類進(jìn)行判斷恢復(fù)。若濾波窗口擴(kuò)大到5×5時(shí),仍滿足窗口中所有點(diǎn)的像素值為0或255,則將濾波窗口擴(kuò)大到7×7,再依次按照第一類和第二類進(jìn)行判斷恢復(fù)。若此時(shí)所有點(diǎn)的像素值仍為0或255,則直接選取窗口中重復(fù)次數(shù)較多的像素值為0或255點(diǎn)直接替換中心點(diǎn)像素值。
②移動(dòng)濾波窗口,重復(fù)步驟①。
③輸出濾波后的圖像。
為了對上述算法中提到的四類情況進(jìn)行詳細(xì)說明,采用以具體像素值為例的噪聲恢復(fù)過程示例,分別對2.1節(jié)步驟①中對應(yīng)的四種分類結(jié)果下的噪聲恢復(fù)進(jìn)行描述。
①假設(shè)第一類情況下濾波窗口內(nèi)像素值分布如圖2所示。
圖2 第一類情況下濾波窗口內(nèi)像素值分布圖
對于圖2(a)和圖2(b)而言,既含有像素值0
對于圖3中(a)所剩像素點(diǎn)采用中值處理,其結(jié)果M=3;圖3(b)中由于只剩下兩個(gè)點(diǎn),求其平均值A(chǔ)=2;圖3(c)中只剩下一點(diǎn),直接取值為4。以計(jì)算結(jié)果對中心點(diǎn)噪聲進(jìn)行恢復(fù)。第一類情況下,噪聲恢復(fù)結(jié)果如圖4所示。
圖3 剔除后剩余的像素點(diǎn)
圖4 第一類情況下噪聲恢復(fù)結(jié)果
算法中第二類與第一類處理類似,故不在此贅述。
②假設(shè)第三類情況下濾波窗口內(nèi)像素值分布如圖5所示。
圖5 第三類情況下濾波窗口內(nèi)像素值分布圖
根據(jù)第三類處理過程,選取窗口中除中心點(diǎn)外的像素點(diǎn)求取中值,其結(jié)果為M=82。以此結(jié)果替換中心點(diǎn)像素值,第三類情況下噪聲恢復(fù)結(jié)果如圖6所示。
圖6 第三類情況下噪聲恢復(fù)結(jié)果
③假設(shè)第四類情況下濾波窗口內(nèi)像素值分布如圖7所示。
圖7 第四類情況下濾波窗口內(nèi)像素值分布
根據(jù)算法中的第四類處理過程,此時(shí)應(yīng)將3×3濾波窗口擴(kuò)大到5×5。假設(shè)擴(kuò)大窗口后的像素點(diǎn)分布如圖8所示。
擴(kuò)充后的像素值分布滿足第三類條件,選取窗口中像素值為10≤p≤240的點(diǎn)進(jìn)行中值運(yùn)算,其結(jié)果為M=112。以此結(jié)果替換中心點(diǎn)像素值,噪聲恢復(fù)結(jié)果如圖9所示。
圖9 第四類情況下噪聲恢復(fù)結(jié)果
為了對本文提出算法的性能進(jìn)行評估,從Matlab7.0的toolbox文件夾中的images文件下的imdemos選取了onion圖像作為標(biāo)準(zhǔn)測試圖像,分別添加密度為40%和60%的脈沖噪聲。以AMF[18]、EMF[19]、SMF[20]以及BPVCF進(jìn)行處理,對比了不同方法處理后圖像的視覺效果。40%和60%噪聲密度下,濾波結(jié)果分別如圖10、圖11所示。
圖10 40%噪聲密度下濾波結(jié)果
圖11 60%噪聲密度下濾波結(jié)果
由圖10可知,在脈沖噪聲密度為40%情況下,圖10(d)和圖10(e)均未能將噪聲完全濾除,濾波效果較差;從總體上來看,圖10(c)和圖10(f)效果差別不大,但是仔細(xì)觀察就會發(fā)現(xiàn),圖10(c)中存在圖像邊緣模糊現(xiàn)象,視覺效果較之本文算法差。由圖11可知,在脈沖噪聲密度為60%情況下時(shí),這一現(xiàn)象更加明顯。綜上所述,本文BPVCF算法在視覺效果上要優(yōu)于EMF、SMF和AMF。
為了能夠從定量計(jì)算結(jié)果上全面、真實(shí)地反映EMF、SMF、AMF和本文算法在不同圖像、不同噪聲密度下的處理效果,分別采用了峰值信噪比(peak sigmal-to-noise ratio,PSNR)、平均結(jié)構(gòu)相似性(mean structural similarity,MSSIM)和圖像增強(qiáng)因子(image enhancement factor,IEF)對處理后的圖像進(jìn)行評價(jià)[21-22]。其中,PSNR、MSSIM和IEF計(jì)算公式分別如式(2)~式(5)所示。
(2)
IS(p,q)=lα(p,q)×cβ(p,q)×sλ(p,q)
(3)
(4)
(5)
計(jì)算上述三個(gè)參量時(shí),從Matlab7.0的toolbox文件夾中的images文件下的imdemos選取了onion、cameraman、pout、coins四幅圖像作為標(biāo)準(zhǔn)測試圖像。對測試圖像分別添加密度為10%~90%的脈沖噪聲,并針對每幅測試圖像,分別采用EMF、SMF、AMF和本文BPVCF算法進(jìn)行處理。處理結(jié)果表明,本文算法處理后的PSNR、MSSIM及IEF值均優(yōu)于其他三種算法。以測試圖像中pout處理結(jié)果為例,得到了經(jīng)不同算法處理后圖像的PSNR、MSSIM以及IEF與噪聲濃度關(guān)系,如圖12所示。
圖12 PSNR、MSSIM以及IEF值分別與噪聲濃度的依賴關(guān)系
由圖12可以看出:在噪聲密度低于80%時(shí),本文算法的性能優(yōu)于其他算法;但是當(dāng)噪聲密度大于80%時(shí),本文算法處理后的PSNR和IEF值略低于AMF算法而高于EMF和SMF算法,但MSSIM值優(yōu)于AMF算法。由此表明,在處理高密度噪聲時(shí),本文算法也具有與AMF算法相當(dāng)?shù)奶幚硇Ч?/p>
本文針對含有脈沖噪聲的圖像,提出了一種基于像素值分類的脈沖噪聲檢測與恢復(fù)算法。試驗(yàn)結(jié)果表明,該算法對于脈沖噪聲密度低于80%的圖像有很好的處理效果,處理后圖像的PSNR、MSSIM和IEF值以及視覺效果優(yōu)勢明顯。在處理噪聲密度高達(dá)80%以上的圖像時(shí),其處理效果也與AMF算法相當(dāng)。