適用于多種噪聲模型的圖像濾波器
基本原理
圖像受獲取和存儲(chǔ)、處理及各種干擾的影響,顯示時(shí)畫(huà)面上會(huì)出現(xiàn)噪聲。為了減少噪聲帶來(lái)的負(fù)面影響,盡可能地還原干凈真實(shí)的畫(huà)面,就需要用到降噪濾波器對(duì)圖像數(shù)據(jù)進(jìn)行處理。
圖像的噪聲有多種類(lèi)型。如加性噪聲、乘性噪聲、椒鹽噪聲、高斯噪聲等。常見(jiàn)的降噪方法有在空間域進(jìn)行的,也有將圖像數(shù)據(jù)經(jīng)過(guò)傅里葉等變換以后轉(zhuǎn)到頻域中進(jìn)行的。其中頻域里的濾波需要涉及復(fù)雜的域轉(zhuǎn)換運(yùn)算,相對(duì)而言硬件實(shí)現(xiàn)起來(lái)會(huì)耗費(fèi)更多的資源和時(shí)間。在空間域進(jìn)行的方法有均值或加權(quán)后均值濾波、中值或加權(quán)中值濾波、最小均方差值濾波和均值或中值的多次迭代等。
實(shí)踐證明,這些方法雖有一定的降噪效果,但都有其局限性。比如加權(quán)均值在細(xì)節(jié)損失上非常明顯;而中值僅對(duì)脈沖干擾有效,對(duì)高斯噪聲卻無(wú)能為力。
事實(shí)上,圖像噪聲總是和有效數(shù)據(jù)交織在一起,若處理不當(dāng),就會(huì)使邊界輪廓、線條等變得模糊不清,反而降低了圖像質(zhì)量。此外,由于各類(lèi)噪聲往往不是單一存在而是同時(shí)并存,所以單純采用一種濾波器,往往達(dá)不到滿(mǎn)意的效果。
本文所述算法,就是針對(duì)這一問(wèn)題,提出了一種新型的可同時(shí)濾除多種噪聲的數(shù)字圖像濾波器方法,其濾波效果優(yōu)于單純的某一種濾波器,同時(shí)計(jì)算量也不太復(fù)雜,硬件上較易實(shí)現(xiàn)。
算法描述
本文所采用的濾波算法包括以下主要步驟。
● 在某鄰域窗口內(nèi)選擇多個(gè)鄰域像素fi,(i=1,2,…,n);
● 噪聲檢測(cè):累計(jì)中心像素與鄰域內(nèi)其他像素之間的差值中大于T1的個(gè)數(shù)N,T1是一個(gè)與圖像的細(xì)節(jié)程度有關(guān)的閥值;當(dāng) 0NT2時(shí),表示中心像素為信號(hào)點(diǎn),否則為噪聲點(diǎn)。T2是與噪聲污染程度相關(guān)的閾值;
● 計(jì)算與所選像素對(duì)應(yīng)的像素?cái)?shù)據(jù)的加權(quán)平均值,這里用“g1”表示;
● 計(jì)算所選像素對(duì)應(yīng)的多窗口(包括十字形窗、X形窗和矩形窗等三種窗口類(lèi)型)像素?cái)?shù)據(jù)排序比較后的中間值,這里用“g2”表示;
● 按照式(1)計(jì)算出濾波的最后輸出值,用來(lái)調(diào)整中心像素的像素?cái)?shù)據(jù)。
(1)
上式中,g(x,y)表示濾波器的輸出像素值;a和b分別是針對(duì)不同噪聲類(lèi)型選擇的線性和非線性濾波比例系數(shù),其取值與N的大小相關(guān)。
實(shí)驗(yàn)結(jié)果
為了比較本文方法和原有方法的降噪效果,我們以Lena圖為例,對(duì)其同時(shí)添加了均值為0.003,差值為0.004的高斯噪聲以及強(qiáng)度為0.01的脈沖噪聲,然后分別用加權(quán)均值濾波、加權(quán)中值濾波和本文提出的方法對(duì)噪聲圖進(jìn)行濾波處理,效果如圖1所示。
圖1(a)Lena原圖
圖1(b)同時(shí)加入高斯和椒鹽噪聲的Lena圖
圖1(c) 加權(quán)均值濾波后
圖1(d)加權(quán)中值濾波后
圖1(e)本文的方法濾波后
同時(shí),可采用計(jì)算信噪比的方法對(duì)各種方法作出量化的比較。式(2)為信噪比的計(jì)算公式。
(2)
其中,M、N是圖像的長(zhǎng)度和寬度,g是濾波以后的數(shù)據(jù),s是原圖數(shù)據(jù),f是附加了噪聲的圖像數(shù)據(jù)。計(jì)算得出的信噪比R若為負(fù)值,則說(shuō)明噪聲被抑制,且R的值越小,說(shuō)明濾波效果越好。表1顯示出了各種方法的信噪比結(jié)果。
可以看到,本文所述方法能集合均值濾波對(duì)高斯噪聲有效和中值濾波對(duì)脈沖噪聲有效的優(yōu)點(diǎn),同時(shí)又避免了在濾波的同時(shí)使細(xì)節(jié)模糊的情況發(fā)生。所以,實(shí)驗(yàn)證明本文所述方法是切實(shí)有效的。
硬件實(shí)現(xiàn)
圖2是硬件系統(tǒng)框圖。大量試驗(yàn)表明,人眼對(duì)亮度信號(hào)的敏感度超過(guò)對(duì)色度的敏感。專(zhuān)門(mén)針對(duì)亮度信號(hào)進(jìn)行降噪濾波,符合人眼的觀看模式。所以,RGB信號(hào)流首先經(jīng)過(guò)YUV色空間轉(zhuǎn)換進(jìn)行亮色分離。RAM塊完成n-1行的亮、色數(shù)據(jù)存儲(chǔ),它可實(shí)現(xiàn)一進(jìn)n出的鄰域窗口數(shù)據(jù)流,輸出給后面的噪聲判斷和濾波處理模塊,最后再還原成RGB輸出給顯示終端。
圖2 硬件系統(tǒng)框圖
關(guān)鍵器件選型時(shí)要綜合考慮系統(tǒng)工作頻率、模塊總規(guī)模、調(diào)用IP庫(kù)、芯片成本、可擴(kuò)展性和可升級(jí)性、廠商支持等多個(gè)方面的因素。由于此平臺(tái)僅用于芯片開(kāi)發(fā)階段中的模塊驗(yàn)證階段,所以不必選擇性能最優(yōu)而價(jià)格昂貴的系列。結(jié)合本設(shè)計(jì)的實(shí)際情況,選擇了Xilinx的Spartan 3E系列XC3S500E (PQ208封裝),該芯片內(nèi)含20個(gè)RAM塊,滿(mǎn)足系統(tǒng)需14個(gè)RAM用于存儲(chǔ)兩行實(shí)時(shí)像素?cái)?shù)據(jù)及對(duì)應(yīng)控制信號(hào)的需求;10476個(gè)邏輯單元,4656個(gè)Slice,而本系統(tǒng)通過(guò)Synplify綜合后的規(guī)模為3158個(gè)Slice,約占70%的內(nèi)部資源,留有一定余量。圖3是濾波主模塊流程圖。
圖3 濾波主模塊流程圖
電路設(shè)計(jì)中的注意事項(xiàng)
根據(jù)視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)的規(guī)定,對(duì)于視頻標(biāo)清及高清信號(hào)的像素時(shí)鐘,至少需要達(dá)到135MHz左右的頻率。為了滿(mǎn)足這一頻率要求,需要運(yùn)用到流水管線設(shè)計(jì)方法,綜合考慮面積和速度兩方面的因素進(jìn)行設(shè)計(jì)。
設(shè)計(jì)的難點(diǎn)有二:一是如何搭建一個(gè)實(shí)時(shí)的像素矩陣數(shù)據(jù)流,一次同時(shí)輸出nn的矩陣數(shù)據(jù);二是如何采用流水管線的方式在延時(shí)若干拍后實(shí)時(shí)地輸出濾波處理后的像素?cái)?shù)據(jù)。
對(duì)于第一個(gè)問(wèn)題,可以調(diào)用Xilinx提供的RAM內(nèi)核,運(yùn)用Coregen工具在器件內(nèi)部規(guī)劃出一個(gè)n行或n-1行的存儲(chǔ)空間,在第n行的第n個(gè)數(shù)據(jù)到達(dá)以后,就可以同時(shí)輸出nn個(gè)矩陣數(shù)據(jù)到后面的處理模塊。輸出一個(gè)矩陣后,新的數(shù)據(jù)又進(jìn)入存儲(chǔ)空間,使數(shù)據(jù)得到刷新。以33矩陣為例,其存儲(chǔ)模塊的功能仿真波形見(jiàn)圖4所示,可以看到在延遲一行加一個(gè)像素時(shí)鐘后,模塊就開(kāi)始按時(shí)鐘輸出y11到y(tǒng)33共九個(gè)鄰域內(nèi)數(shù)據(jù)。
圖4 存儲(chǔ)模塊的功能仿真波形
第二個(gè)問(wèn)題的解決可充分利用能夠有效提高電路運(yùn)行速度的流水線方法。首先將濾波處理過(guò)程分為若干步驟,每一步驟對(duì)應(yīng)一些狀態(tài)標(biāo)志寄存器或中間寄存器,由此搭建一個(gè)有著若干節(jié)拍的流水結(jié)構(gòu),最后在總的延遲拍數(shù)后實(shí)現(xiàn)實(shí)時(shí)的(即按圖像像素時(shí)鐘頻率來(lái)輸出)濾波數(shù)據(jù)輸出流。不論是33的還是77的矩陣鄰域,或者更大些的鄰域,從輸入矩陣數(shù)據(jù)到輸出此矩陣的中間值,都是只需最多8拍即可完成。從而有效提高電路工作頻率,本系統(tǒng)經(jīng)過(guò)靜態(tài)時(shí)序分析后的結(jié)果為135MHz,滿(mǎn)足高清信號(hào)處理所需的像素時(shí)鐘頻率。
評(píng)論