魏松濤,何文思
(蘭州理工大學(xué) 機(jī)電工程學(xué)院,甘肅 蘭州 730050)
數(shù)字圖像采集過程中會(huì)引入各種噪聲,在進(jìn)行圖像處理之前要對(duì)圖像進(jìn)行濾波[1]。在圖像處理、計(jì)算機(jī)視覺等相關(guān)領(lǐng)域,濾波是重要的基礎(chǔ)研究之一,因此研究一種較為有效的濾波方法極為重要。當(dāng)前,圖像濾波方法主要分為空域?yàn)V波和頻域?yàn)V波兩類??沼?yàn)V波通常是采用鄰域內(nèi)像素進(jìn)行加權(quán)平均的方法降低噪聲,常用的空域?yàn)V波方法有中值濾波[2]、高斯濾波[3]、雙邊濾波[4]。頻域?yàn)V波將圖像轉(zhuǎn)換到頻域,根據(jù)噪聲和圖像頻譜的分布差異,對(duì)噪聲所在的頻率范圍設(shè)計(jì)相應(yīng)的濾波器,去除圖像中的噪聲,最后將濾波后的圖像從頻域轉(zhuǎn)換到空域[5]。常用的頻域?yàn)V波方法有Wiener濾波、小波變換[6]??沼?yàn)V波和頻域?yàn)V波對(duì)圖像每個(gè)像素點(diǎn)都進(jìn)行相同的操作,在濾波的同時(shí)對(duì)圖像的邊緣進(jìn)行了不同程度的模糊。
均值濾波是一種常用的空域線性濾波方法,該方法運(yùn)算過程相對(duì)簡(jiǎn)單,對(duì)高斯噪聲具有良好的去噪能力。均值濾波是采用卷積核內(nèi)像素灰度值的算術(shù)平均值代替卷積核中心像素灰度值。在計(jì)算卷積核中心像素灰度值時(shí)卷積核內(nèi)像素的權(quán)重相同,實(shí)際上在卷積核不同位置對(duì)中心像素的影響不同,應(yīng)該使用不同的權(quán)重。因?yàn)樵诰禐V波時(shí)卷積核內(nèi)權(quán)重相同,所以在濾波的同時(shí)會(huì)破壞圖像高頻細(xì)節(jié),使圖像模糊。
均值濾波是將卷積核覆蓋下原圖像所有點(diǎn)的像素值進(jìn)行求和,然后求平均值的過程。具體過程是先確定卷積核的大小,比如可以選定卷積核為3×3,然后對(duì)卷積核所覆蓋下原圖像9個(gè)像素值進(jìn)行求和,再求平均值,最后求得的平均值作為新圖像中卷積核中心所對(duì)應(yīng)位置的像素值。用f(x,y)表示原圖像在(x,y)點(diǎn)處的像素值,用w(x,y)表示均值濾波后(x,y)點(diǎn)處的像素值,可以用公式(1)表示f(x,y)和w(x,y)之間的關(guān)系。式(1)中的i、j是在卷積核內(nèi)所對(duì)應(yīng)的位置,m表示卷積核中元素的個(gè)數(shù)。對(duì)于3×3的卷積核用公式(2)表示。在卷積核覆蓋下每個(gè)原圖像像素值所占的權(quán)重都是一樣的。這樣做雖然達(dá)到了濾波的目的,但是導(dǎo)致很多細(xì)邊緣很難保留下來。
(1)
(2)
對(duì)于圖像f(x,y),在(x,y)點(diǎn)處的梯度用公式(3)計(jì)算。梯度的幅值大小用公式(4)計(jì)算。圖1中的符號(hào)表示3×3卷積核覆蓋區(qū)域內(nèi)像素點(diǎn)的灰度值,圖1中的z5表示圖像任意位置(x,y)圖像的灰度值。在中心系數(shù)上使用權(quán)值2得到Sobel算子的導(dǎo)數(shù)如公式(5)所示[7],Sobel算子的卷積核如圖2和圖3所示。
(3)
(4)
(5)
圖1 卷積核覆蓋下的像素值
圖2 x方向卷積核
圖3 y方向卷積核
結(jié)合均值濾波和梯度影響因子進(jìn)行濾波,主要是為了在濾波的同時(shí)對(duì)細(xì)邊緣進(jìn)行保護(hù)。主要思路是由于非邊緣區(qū)域在卷積核內(nèi)其梯度波動(dòng)較小,故中心點(diǎn)外的像素值對(duì)中心點(diǎn)像素值的貢獻(xiàn)較大,因此對(duì)于非邊緣區(qū)域不會(huì)對(duì)邊緣產(chǎn)生較大的影響;在邊緣區(qū)域時(shí),應(yīng)該使中心點(diǎn)外非邊緣上點(diǎn)的像素值對(duì)中心點(diǎn)像素值的貢獻(xiàn)較小,這樣對(duì)邊緣產(chǎn)生的影響較小。可以構(gòu)造函數(shù)如公式(6)所示,公式(7)為梯度影響因子,將公式(7)代入公式(6)中,公式(6)可以寫為公式(8)。
(6)
d(i,j,k,l)=exp(-(gij-gkl)2/(2σ2)
(7)
(8)
在編程過程中直接用公式(7)所表示的梯度影響因子編程所消耗的時(shí)間較多,因此可以將其用公式(9)的形式展開為多項(xiàng)式,展開的梯度影響因子用公式(10)表示。在具體實(shí)現(xiàn)時(shí)根據(jù)實(shí)際要求選擇合適的n值。
(9)
(10)
以lena圖像作為實(shí)驗(yàn)圖像,分別進(jìn)行均值濾波和改進(jìn)算法濾波,并對(duì)細(xì)節(jié)部分進(jìn)行對(duì)比。均值濾波和改進(jìn)算法濾波如圖4所示。圖5和圖6為均值濾波算法和改進(jìn)算法細(xì)節(jié)對(duì)比,從圖5中可以看出采用改進(jìn)算法濾波后圖像帽子上的細(xì)節(jié)紋理清晰。在lena原圖像上添加高斯噪聲并分別進(jìn)行濾波,濾波效果如圖7所示。
圖4 圖像濾波細(xì)節(jié)對(duì)比
圖5 細(xì)節(jié)1對(duì)比
圖6 細(xì)節(jié)2對(duì)比
圖7 添加高斯噪聲濾波效果
為了評(píng)價(jià)圖像濾波效果,選擇圖像的均值、熵、標(biāo)準(zhǔn)差、平均梯度值作為評(píng)價(jià)參數(shù)(表1)。均值表示圖像的亮度,熵表示圖像間的一致性[8],標(biāo)準(zhǔn)差表示灰度值的分散程度,平均梯度值表示圖像相對(duì)清晰程度。從表1中可以看出:濾波前后圖像均值保持一致,圖像亮度變化??;改進(jìn)算法濾波圖像的熵和原圖像的熵更為接近,并且大于均值濾波圖像的熵,這說明改進(jìn)算法能夠保證灰度圖像的一致性;改進(jìn)算法濾波圖像的平均梯度值遠(yuǎn)高于均值濾波圖像的平均梯度值,這說明改進(jìn)算法很好地保護(hù)了圖像的細(xì)節(jié)。
表1 評(píng)價(jià)參數(shù)
峰值信噪比(peak signal to noise ratio,RSNR)表示信號(hào)最大可能功率和影響信號(hào)表示精度的破壞性噪聲功率的比值[9]。峰值信噪比是圖像失真的度量,并且和均方誤差(mean square error,MSE)相關(guān)。均方誤差如公式(11)所示[10]。在公式(11)中f是輸入圖像,w是輸出圖像,M和N分別是圖像的行數(shù)和列數(shù)。用公式(12)計(jì)算圖像的峰值信噪比。公式(12)中的L表示圖像點(diǎn)顏色的最大值。
(11)
(12)
對(duì)lena原圖像采用均值濾波和改進(jìn)算法濾波,對(duì)濾波后的圖像分別計(jì)算峰值信噪比,同理對(duì)添加高斯噪聲的lena圖像也進(jìn)行同樣的操作。從表2中可以看出改進(jìn)濾波算法濾波圖像的峰值信噪比遠(yuǎn)高于均值濾波圖像的峰值信噪比,說明改進(jìn)算法的濾波效果比均值濾波效果好。
表2 PSNR值對(duì)比 單位:dB
本文針對(duì)均值濾波卷積核內(nèi)像素使用相同的權(quán)重會(huì)破壞圖像邊緣信息這一問題提出了改進(jìn)算法。改進(jìn)濾波算法增加了梯度影響因子,根據(jù)梯度影響因子自動(dòng)分配卷積核內(nèi)像素的權(quán)重,在卷積核內(nèi)邊緣上的像素點(diǎn)權(quán)重較大,而非邊緣上的像素點(diǎn)權(quán)重較小。改進(jìn)算法對(duì)圖像濾波的同時(shí)能夠較好地保護(hù)圖像的細(xì)節(jié)和邊緣,同時(shí)也達(dá)到了良好的濾波效果。改進(jìn)算法引入了梯度影響因子,增加了算法的復(fù)雜度,故將進(jìn)一步研究在保證改進(jìn)算法效果的同時(shí)降低算法復(fù)雜度。