適用於多種噪聲模型的圖像濾波器

2020-12-13 電子產品世界

基本原理


圖像受獲取和存儲、處理及各種幹擾的影響,顯示時畫面上會出現噪聲。為了減少噪聲帶來的負面影響,儘可能地還原乾淨真實的畫面,就需要用到降噪濾波器圖像數據進行處理。


圖像噪聲多種類型。如加性噪聲、乘性噪聲、椒鹽噪聲、高斯噪聲等。常見的降噪方法有在空間域進行的,也有將圖像數據經過傅立葉等變換以後轉到頻域中進行的。其中頻域裡的濾波需要涉及複雜的域轉換運算,相對而言硬體實現起來會耗費更多的資源和時間。在空間域進行的方法有均值或加權後均值濾波、中值或加權中值濾波、最小均方差值濾波和均值或中值的多次迭代等。

實踐證明,這些方法雖有一定的降噪效果,但都有其局限性。比如加權均值在細節損失上非常明顯;而中值僅對脈衝幹擾有效,對高斯噪聲卻無能為力。


事實上,圖像噪聲總是和有效數據交織在一起,若處理不當,就會使邊界輪廓、線條等變得模糊不清,反而降低了圖像質量。此外,由於各類噪聲往往不是單一存在而是同時並存,所以單純採用一種濾波器,往往達不到滿意的效果。


本文所述算法,就是針對這一問題,提出了一種新型的可同時濾除多種噪聲的數字圖像濾波器方法,其濾波效果優於單純的某一種濾波器,同時計算量也不太複雜,硬體上較易實現。


算法描述


本文所採用的濾波算法包括以下主要步驟。


● 在某鄰域窗口內選擇多個鄰域像素fi,(i=1,2,…,n);
● 噪聲檢測:累計中心像素與鄰域內其他像素之間的差值中大於T1的個數N,T1是一個與圖像的細節程度有關的閥值;當 0NT2時,表示中心像素為信號點,否則為噪聲點。T2是與噪聲汙染程度相關的閾值;
● 計算與所選像素對應的像素數據的加權平均值,這裡用「g1」表示;
● 計算所選像素對應的多窗口(包括十字形窗、X形窗和矩形窗等三種窗口類型)像素數據排序比較後的中間值,這裡用「g2」表示;
● 按照式(1)計算出濾波的最後輸出值,用來調整中心像素的像素數據。


(1)


上式中,g(x,y)表示濾波器的輸出像素值;a和b分別是針對不同噪聲類型選擇的線性和非線性濾波比例係數,其取值與N的大小相關。

實驗結果


為了比較本文方法和原有方法的降噪效果,我們以Lena圖為例,對其同時添加了均值為0.003,差值為0.004的高斯噪聲以及強度為0.01的脈衝噪聲,然後分別用加權均值濾波、加權中值濾波和本文提出的方法對噪聲圖進行濾波處理,效果如圖1所示。

圖1(a)Lena原圖

圖1(b)同時加入高斯和椒鹽噪聲的Lena圖

圖1(c) 加權均值濾波後

圖1(d)加權中值濾波後

圖1(e)本文的方法濾波後


同時,可採用計算信噪比的方法對各種方法作出量化的比較。式(2)為信噪比的計算公式。


(2)


其中,M、N是圖像的長度和寬度,g是濾波以後的數據,s是原圖數據,f是附加了噪聲的圖像數據。計算得出的信噪比R若為負值,則說明噪聲被抑制,且R的值越小,說明濾波效果越好。表1顯示出了各種方法的信噪比結果。


可以看到,本文所述方法能集合均值濾波對高斯噪聲有效和中值濾波對脈衝噪聲有效的優點,同時又避免了在濾波的同時使細節模糊的情況發生。所以,實驗證明本文所述方法是切實有效的。

硬體實現


圖2是硬體系統框圖。大量試驗表明,人眼對亮度信號的敏感度超過對色度的敏感。專門針對亮度信號進行降噪濾波,符合人眼的觀看模式。所以,RGB信號流首先經過YUV色空間轉換進行亮色分離。RAM塊完成n-1行的亮、色數據存儲,它可實現一進n出的鄰域窗口數據流,輸出給後面的噪聲判斷和濾波處理模塊,最後再還原成RGB輸出給顯示終端。

圖2 硬體系統框圖


關鍵器件選型時要綜合考慮系統工作頻率、模塊總規模、調用IP庫、晶片成本、可擴展性和可升級性、廠商支持等多個方面的因素。由於此平臺僅用於晶片開發階段中的模塊驗證階段,所以不必選擇性能最優而價格昂貴的系列。結合本設計的實際情況,選擇了Xilinx的Spartan 3E系列XC3S500E (PQ208封裝),該晶片內含20個RAM塊,滿足系統需14個RAM用於存儲兩行實時像素數據及對應控制信號的需求;10476個邏輯單元,4656個Slice,而本系統通過Synplify綜合後的規模為3158個Slice,約佔70%的內部資源,留有一定餘量。圖3是濾波主模塊流程圖。

圖3 濾波主模塊流程圖

電路設計中的注意事項


根據視頻電子標準協會(VESA)的規定,對於視頻標清及高清信號的像素時鐘,至少需要達到135MHz左右的頻率。為了滿足這一頻率要求,需要運用到流水管線設計方法,綜合考慮面積和速度兩方面的因素進行設計。


設計的難點有二:一是如何搭建一個實時的像素矩陣數據流,一次同時輸出nn的矩陣數據;二是如何採用流水管線的方式在延時若干拍後實時地輸出濾波處理後的像素數據。


對於第一個問題,可以調用Xilinx提供的RAM內核,運用Coregen工具在器件內部規劃出一個n行或n-1行的存儲空間,在第n行的第n個數據到達以後,就可以同時輸出nn個矩陣數據到後面的處理模塊。輸出一個矩陣後,新的數據又進入存儲空間,使數據得到刷新。以33矩陣為例,其存儲模塊的功能仿真波形見圖4所示,可以看到在延遲一行加一個像素時鐘後,模塊就開始按時鐘輸出y11到y33共九個鄰域內數據。

圖4 存儲模塊的功能仿真波形


第二個問題的解決可充分利用能夠有效提高電路運行速度的流水線方法。首先將濾波處理過程分為若干步驟,每一步驟對應一些狀態標誌寄存器或中間寄存器,由此搭建一個有著若干節拍的流水結構,最後在總的延遲拍數後實現實時的(即按圖像像素時鐘頻率來輸出)濾波數據輸出流。不論是33的還是77的矩陣鄰域,或者更大些的鄰域,從輸入矩陣數據到輸出此矩陣的中間值,都是只需最多8拍即可完成。從而有效提高電路工作頻率,本系統經過靜態時序分析後的結果為135MHz,滿足高清信號處理所需的像素時鐘頻率。


相關焦點

  • 電源噪聲濾波器的基本原理
    另外在數字電路中還有多種重複頻率的脈衝串,這些脈衝串包含的諧波更豐富,頻譜更寬,產生的電磁幹擾噪聲也更複雜。  各類穩壓電源本身也是一種電磁幹擾源。  在對電磁幹擾噪聲採取抑制措施時,主要應考慮抑制共模噪聲,因為共模噪聲在全頻域特別在高頻域佔主要部分,而在低頻域差模噪聲佔比例較大,所以應根據EMI噪聲的這個特點來選擇適當的EMI濾波器。  電源用噪聲濾波器按形狀可分為一體化式和分立式。一體化式是將電感線圈、電容器等封裝在金屬或塑料外殼中;分立式是在印製板上安裝電感線圈、電容器等,構成抑制噪聲濾波器。
  • 從計算機視覺到人臉識別:一文看懂顏色模型、信號與噪聲
    由於在實現上使用了3種顏色的定量配比,因此該模型也被稱為加色混色模型。通過3種最基本顏色的混合疊加來表現出任意的一種顏色的方法,特別適用於顯示器等主動發光的顯示設備。值得一提的是,RGB顏色的展現依賴於設備的顏色空間,不同設備對RGB顏色值的檢測不盡相同,表現出來的結果也存在差異。這也就使得我們感覺有些手機屏幕顏色特別逼真、絢麗,而另一些就難以令人滿意。
  • MATLAB應用在基於噪聲檢測的圖像均值去噪法
    圖像去噪,即在儘可能地不損失原圖像細節的前提下,去除圖像中無關的噪點。現有的圖像去噪方法[11很多,如:  1 均值濾渡器  均值濾波器是一種典型的線性去噪方法,因為其運算簡單快速,同時又能夠較為有效地去除高斯噪聲。因而適用面較廣。  許多濾除噪聲方法都是在此基礎上發展而來的。其缺點是嚴重破壞了圖像的邊緣,模糊了圖像。
  • 教你在真實圖像數據上應用線性濾波器
    接下來,我們可以可視化的觀察數據集中原始圖像、經過灰度轉換後的圖像以及 Sobel 濾波後的圖像:原始圖像(左),灰度圖像(中間)以及在 x 方向上進行 Sobel 濾波後的圖像(右)。我們僅對單通道圖像使用線性濾波器。實際上,這意味著模型被訓練成將灰度轉換後的圖像到 Sobel 過濾後的圖像的映射。
  • 圖像的本徵分解模型簡介
    因此,現有圖像本徵分解方法旨在設計合理的約束,如局部先驗、非局部空間連續性先驗、稀疏先驗、深度先驗等,儘可能真實地恢復出場景中與人眼視覺感知相符的反射率圖和亮度圖。「純淨」光譜特徵提取:1. 高光譜圖像本徵分解模型在傳統圖像本徵分解模型中,亮度圖被認為是幅固定的灰度圖像。換言之,圖像在不同波長上的亮度成分被認為是固定的。
  • 基於中值的圖像椒鹽噪聲的非迭代濾除
    現實中由於照相機的性能和光線強弱的變化,噪聲在圖像中不可避免。去除噪聲的方法大致分為兩類:線性方法和非線性方法。線性濾波和含噪圖像的卷積能有效地去除高斯噪聲以及其他呈均勻分布的噪聲,但由於這種方法把邊界處灰度變化較大位置的點也當作椒鹽噪聲處理,因此他對這樣的噪聲效果甚微,並且還經常對圖像造成模糊。
  • 數字圖像處理技術的相關基礎知識詳解
    本篇將介紹的是數字圖像處理技術知識的分享,有興趣的朋友可以了解一下!圖像濾波處理圖像濾波是指在儘可能保留圖像細節特徵的同時防止目標圖像失真。其目的是兩個:提取對象特徵作為圖像識別特徵模型,消除圖像數位化過程中的混合噪聲。去除圖像中的噪聲分量稱為「平滑或過濾圖像」。
  • 基於FPGA的實時中值濾波器硬體實現
    在高清圖像的生成和採集過程中,往往會受到各種噪聲的幹擾,使高清圖像的質量變差,因此必須對圖像進行濾波、平滑等預處理來消除噪聲。中值濾波作為一種非線性濾波方法,既可以消除隨機噪聲和脈衝幹擾,又可以很大程度地保留圖像的邊緣信息,得到了廣泛的運用。
  • 【數字圖像處理系列五】圖像濾波之空間濾波:圖像平滑降噪和圖像銳化
    而濾波器的類型也取決於鄰域上操作的類型,如果鄰域操作是線性操作,則濾波器稱為線性空間濾波器;反之如果鄰域操作是非線性操作,則濾波器稱為非線性空間濾波器。這裡我們假設 f(x,y) 為原像素值,g(x,y) 為濾波後的像素值,則對於一個大小為M * N的圖像使用大小為m * n的濾波器進行線性空間濾波,若令m=2a+1,n=2b+1,則鄰域上線性操作可統一表達成下式:
  • 自適應濾波器的作用、原理以及相關應用
    2、逆系統辨識:在這類應用中,自適應濾波器的作用是提供一個逆模型,該模型可在某種意義上最好擬合未知噪聲裝置。理想地,在線性系統的情況下,該逆模型具有等於未知裝置轉移函數倒數的轉移函數,使得二者的組合構成一個理想的傳輸媒介。該系統輸入的延遲構成自適應濾波器的期望響應。在某些應用中,該系統輸入不加延遲地用做期望響應。
  • 適用於低通跨阻濾波器的低噪聲低失調斬波全差分運放
    0 引言  低通跨阻濾波器是零中頻接收機中一個核心模塊,主要作用是將前級電路的直流小信號電流信號放大以及轉換為電壓信號,從而供後級電路處理。基於噪聲的考慮,接收機一般採用無源混頻器,原因在於無源混頻器不存在直流電流,它本身的噪聲對整個系統的貢獻可以忽略不計[1-2]。
  • 什麼是低通濾波器?無源RC濾波器基礎介紹
    正弦波和噪聲佔據了信號頻域表示的不同部分(如下圖所示),這意味著我們可以通過將信號引導通過低頻並阻擋高頻的電路來過濾噪聲。濾波器的類型濾波器可以放在與濾波器頻率響應的一般特徵相對應的廣泛類別中。如果濾波器通過低頻並阻塞高頻,則稱為低通濾波器。如果它阻塞低頻並通過高頻,它就是一個高通濾波器。
  • 綜述:圖像濾波常用算法實現及原理解析
    不僅如此,中值濾波器在消除噪聲的同時,還能有效的保護圖像的邊界信息,不會對圖像造成很大的模糊(相比於均值濾波器)。中值濾波器的效果受濾波窗口尺寸的影響較大,在消除噪聲和保護圖像的細節存在著矛盾:濾波窗口較小,則能很好的保護圖像中的某些細節,但對噪聲的過濾效果就不是很好,因為實際中的噪聲不可能只佔一個像素位置;反之,窗口尺寸較大有較好的噪聲過濾效果,但是會對圖像造成一定的模糊。
  • 5GHz頻段的噪聲問題及降噪對策
    使用多種通信方式時,下載速度慢 下面介紹具體的噪聲案例。 進行多種無線通信時產生噪聲的問題 LAA、LTE-U的介紹 首先介紹進行多種無線通信的情況。 在使用多種頻率重疊無線方式的環境下,噪聲可能從一條通信電路傳導至另一條電路而產生不良影響,因此為電源線配置降噪濾波器,可有效去除特定頻段。
  • 手把手教你使用圖像處理利器OpenCV
    雖然這些圖像可以直接用於特徵抽取,但是算法的準確性會受到很大的影響。這就是為什麼在將圖像傳遞給算法以獲得更好的精度之前,要對圖像進行處理的原因。有許多不同類型的噪聲,如高斯噪聲,椒鹽噪聲等。我們可以通過應用濾波器來去除圖像中的噪聲,或者至少將其影響降到最低。在濾波器方面也有很多選擇,每一個濾波器都有不同的優點。
  • 使用Python+OpenCV進行圖像處理(二)
    整個視覺入門系列內容如下:理解顏色模型與在圖像上繪製圖形(圖像處理基本操作)。基本的圖像處理與濾波技術。從特徵檢測到人臉檢測。圖像分割與分水嶺(Watershed)算法(TBU)在邊緣和輪廓檢測中,噪聲對檢測的精度有很大的影響。
  • 【圖像處理】基於形態學的權重自適應圖像去噪
    數字圖像在進行數學形態濾波去噪時,根據噪聲特點可以嘗試採用維數由小到大的結構元素來進行處理,進而達到濾除不同噪聲的目的。
  • 關於tonal噪聲,你了解多少?(完)
    但最主要的問題在於,這些算法都不是真正的基於心理聲學概念,它們都只考慮了客觀物理量本身的屬性,沒有計算人耳的主觀感受,而且基本都僅適用於穩定的單頻音調信號。 實際上我們對於tonal的感受包括多種不同的情況,不僅僅是單頻信號,其它阻尼比較小的共振,頻率有突變的信號,以上信號的組合等等,都會造成tonal的主觀感受。這些信號,很難用常規的tonal函數去計算顯示。
  • 視頻教程 | 理解卡爾曼濾波器(英語中字)
    本視頻教程由7個小節組成,系統介紹了卡爾曼濾波器,言簡意賅,適合入門。各個小節的主要內容為:第一節:通過幾個案例了解使用卡爾曼濾波器的常見場景。了解卡爾曼濾波器背後的工作原理。第二節:介紹了解狀態觀測器的工作原理,並解釋其背後的數學原理。在無法直接測量時,使用狀態觀測器估算系統的內部狀態。
  • matlab處理圖像代碼
    對於相加和相乘的情形,可能不止有兩幅圖像參加運算。圖像相加的一個重要應用是對同一場景的多幅圖像求平均值。這點被經常用來有效地降低加性(additive)隨機噪聲的影響(見例4)%例4:圖象加噪聲再通過多次相加求平均的方法祛除噪聲[I,M]=imread('c:\boat.png');J=imnoise(I,'salt & pepper',0.005);subplot(1,2,1),imshow(I,M),title('原圖象');subplot(