opencv圖像分析與處理(10)- 常見的噪聲以及空間濾波器噪聲消除方法

本節爲opencv數字圖像處理(10):圖像復原與重建的第一小節,常見的噪聲以及空間濾波器噪聲消除方法,主要包括:圖像/退化復原模型,六種常見噪聲模型(高斯、瑞利、愛爾蘭、指數、均勻、脈衝噪聲)並且使用空間濾波器對退化圖像進行復原(也即消除噪聲),包括算數均值、幾何均值、諧波與逆諧波均值、中值、最值、中點、修正的阿爾法均值以及兩種自適應濾波器(自適應局部降低噪聲濾波器和自適應中值濾波器)。

1. 圖像退化/復原模型

  書中將退化過程建模爲一個退化函數和一個加性噪聲項,對輸入圖像f(x,y)f(x,y)進行處理,產生退化圖像g(x,y)g(x,y),給定g(x,y)g(x,y)和關於退化函數HH以及加性噪聲項η(x,y)\eta( x,y)的知識,圖像復原的目的就是獲得原始圖像的一個估計f^(x,y)\hat f(x,y)

  如果HH是一個線性的位置不變的過程,那麼空間域的退化圖像可由下式給出:
在這裏插入圖片描述
  根據卷積定理,可以寫成等價的頻率域表示:
在這裏插入圖片描述
  基於上述過程,圖像退化/復原建模如下:
在這裏插入圖片描述

2. 噪聲模型

2.1. 重要的噪聲概率密度函數

高斯噪聲/正態噪聲

  高斯隨機變量zz的PDF由下式給出:
在這裏插入圖片描述
  其中,zz表示灰度值,zˉ\bar z表示zz的均值,σ\sigma表示zz的標準差,高斯函數的曲線如下圖所示,當zz服從上式分佈時,其值有約70%落在範圍[(zˉσ),(zˉ+σ)][(\bar z-\sigma),(\bar z+\sigma)]內,大約95%落在[(zˉ2σ),(zˉ+2σ)][(\bar z-2\sigma),(\bar z+2\sigma)]內。
在這裏插入圖片描述
瑞利噪聲

  瑞利噪聲的PDF由下式給出:
在這裏插入圖片描述
  概率密度的均值zˉ=a+πb/4\bar z=a+\sqrt{\pi b/4},方差σ2=b(4π)4\sigma^2=\frac{b(4-\pi)}{4},瑞利密度的曲線如下所示:
在這裏插入圖片描述
  瑞利曲線距原點的位移和密度的基本形狀向右變形,瑞利密度對於近似歪斜的直方圖十分適用。

愛爾蘭/伽馬噪聲

  愛爾蘭噪聲的PDF由下式給出:
在這裏插入圖片描述
  其中,參數a>0ba>0,b爲正整數,概率密度的均值爲zˉ=ba\bar z=\frac ba,方差爲σ2=ba2\sigma^2=\frac b{a^2},伽馬分佈密度曲線如下所式。【雖然一般稱上式爲伽馬噪聲,但嚴格來說只有分母爲伽馬函數Γ(b)\Gamma(b)時才正確,上式的密度稱爲愛爾蘭密度更合適】
在這裏插入圖片描述
指數噪聲

  指數噪聲的PDF由下式給出:
在這裏插入圖片描述
  其中a>0a>0,均值爲zˉ=1a\bar z=\frac 1 a,方差σ2=1a2\sigma^2=\frac 1 {a^2},下圖是該密度函數的曲線:
在這裏插入圖片描述
均勻噪聲

  均勻噪聲的PDF由下式給出:
在這裏插入圖片描述
  均值zˉ=a+b2\bar z=\frac{a+b}2,方差σ2=(ba)212\sigma^2=\frac{(b-a)^2}{12},均勻密度的曲線如下:
在這裏插入圖片描述
脈衝/椒鹽噪聲

  雙極脈衝噪聲的PDF如下:
在這裏插入圖片描述
  如果b>ab>a則灰度級bb在圖像中顯示爲一個兩點,反之灰度級aa在圖像中顯示爲一個暗點,若PaP_aPbP_b爲零,則脈衝噪聲稱爲單極脈衝。如果PaP_aPbP_b都不可能爲零,尤其是當他們近似相等時,則脈衝噪聲值將類似於在圖像上隨機分佈的椒鹽顆粒。密度曲線如下所示:
在這裏插入圖片描述
總結

  上述噪聲的PDF爲實踐中建立寬帶噪聲污染狀態的模型提供了有用的工具,比如在一幅圖像中,高斯噪聲來源於諸如電子電路噪聲以及由低照明度或高溫帶來的傳感器噪聲,瑞利密度有助於深度成像中表徵噪聲,指數密度和伽馬密度在激光成像中有用。脈衝噪聲在快速過渡的情況下產生,如成像期間發生的錯誤開關操作。均勻密度作爲仿真中使用的許多隨機數生成器的基礎是非常有用的。

  下圖所示是圖像添加了各種噪聲之後的圖像與直方圖對比,除了椒鹽噪聲之外的五幅圖像表觀上看起來之後亮度的差別(直方圖上確實有提現)。【椒鹽噪聲是唯一一種引起退化的視覺上可區分的噪聲類型】
在這裏插入圖片描述

2.2. 週期噪聲

  一幅圖像中的圖像噪聲是圖像獲取期間由電力或機電干擾產生的,是一種空間相關噪聲,可通過頻率域濾波顯著減少。

  典型地,週期噪聲的參數可以通過檢測圖像的福利也服來進行估計,因爲週期噪聲趨向於產生頻率尖峯,有的通過視覺就可以檢測到。另一種是由圖像推斷噪聲分量的週期性(非常簡單的情況下可行)

  通常噪聲的PDF的參數可以從傳感器的說明中的值,如果成像系統可用,我們可以獲取一組平坦環境的圖像,即光學傳感器下對一個光照均勻的純色灰度板成像,根據圖像的直方圖估計噪聲類型。

3. 圖像復原-空間濾波

  當一幅圖像唯一存在的退化是噪聲時,有g(x)=f(x,y)+η(x,y)g(x)=f(x,y)+\eta(x,y)G(u,v)=F(u,v)+N(u,v)G(u,v)=F(u,v)+N(u,v),因爲噪聲項未知,所以簡單減去不可行。當僅存在加性噪聲時,可以選擇空間濾波方法。

3.1 均值濾波器

算數均值濾波器

  令SxyS_{xy}表示中心在點(x,y)(x,y)處大小爲m×nm\times n的矩形子圖像窗口的一組座標,算數均值濾波器在SxyS_{xy}定易得區域計算被污染圖像g(x,y)g(x,y)的平均值,在(x,y)(x,y)處復原圖像f^\hat f的值就是這個算數均值:
f^(x,y)=1mnΣs,tSxyg(s,t) \hat f(x,y)=\frac1{mn}\Sigma_{s,t\in S_{xy}} g(s,t)
  這個操作可以通過一個大小爲m×nm\times n的空間濾波器來實現,其所有係數均爲值得1/mn1/mn。均值濾波平滑一幅圖像中的局部變化,模糊了結果降低了噪聲。

幾何均值濾波器

  表達式如下:
f^(x,y)=[s,tSxyg(s,t)]1mn \hat f(x,y)=\left[\prod_{s,t\in S_{xy}}g(s,t)\right]^{\frac1{mn}}
  噪聲降低效果類似,但是丟失的圖像細節更少。

諧波均值濾波器

  表達式如下:
f^(x,y)=mnΣs,tSxy1g(s,t) \hat f(x,y)=\frac{mn}{\Sigma_{s,t\in S_{xy}}\frac{1}{g(s,t)}}
  諧波均值濾波對鹽粒噪聲效果較好,但不適用於胡椒噪聲。它善於處理項高斯噪聲那樣的其他噪聲。

逆諧波均值濾波器

  表達式如下:
f^(x,y)=Σs,tSxyg(s,t)Q+1Σs,tSxyg(s,t)Q \hat f(x,y)=\frac{\Sigma_{s,t\in S_{xy}}g(s,t)^{Q+1}}{\Sigma_{s,t\in S_{xy}}g(s,t)^Q}
  Q稱爲濾波器的階數,適合減少甚至消除椒鹽噪聲的影響。當Q爲正數,消除胡椒噪聲,當Q爲負數,消除鹽粒噪聲。【不能同時】。當Q=0,即算術均值濾波器;當Q=-1,諧波均值濾波器。

小結

  總的來看,算數均值和集合均值更適合處理高斯或均勻隨機噪聲,逆諧波均值適合處理脈衝噪聲,但是它必須知道噪聲是暗噪聲還是亮噪聲,以便選擇Q的符號。

3.2 統計排序濾波器

中值濾波器
  表達式:
f^(x,y)=medians,tSxy{g(s,t)} \hat f(x,y)=median_{s,t\in S_{xy}}\{g(s,t)\}
  中值濾波器引起的模糊更小,存在單極或雙極脈衝噪聲的情況下尤爲有效。

最值濾波器

  最大值濾波器:
f^(x,y)=maxs,tSxy{g(s,t)} \hat f(x,y)=max_{s,t\in S_{xy}}\{g(s,t)\}
  這種濾波器對圖像中的最亮點非常有用,可以消除胡椒噪聲。

  最小值濾波器:
f^(x,y)=mins,tSxy{g(s,t)} \hat f(x,y)=min_{s,t\in S_{xy}}\{g(s,t)\}
  這種濾波器對圖像中的最暗殿非常有用,可以消除鹽粒噪聲。

中點濾波器

  表達式:
f^(x,y)=12[mins,tSxy+maxs,tSxy] \hat f(x,y)=\frac12\left[min_{s,t\in S_{xy}}+max_{s,t\in S_{xy}}\right]
  它對於隨機分佈的噪聲比如高斯或者均勻噪聲效果最好。

修正的阿爾法均值濾波器

  在SxyS_{xy}鄰域中去掉灰度排序序列中的前d/2和後d/2,令gr(s,t)g_r(s,t)表示剩下的mndmn-d個像素,由剩餘像素的平均值形成的濾波器,表達式如下:
f^(x,y)=1mndΣs,tSxygr(s,t) \hat f(x,y)=\frac1{mn-d}\Sigma_{s,t\in S_{xy}} g_r(s,t)
  當d=0,算數均值濾波器;當d=mn-1,中值濾波器。當d取其他值,該濾波器在包含多種噪聲的情況下效果較好,比如高斯噪聲和椒鹽噪聲混合時。

3.3 自適應濾波器

  這裏退化圖像仍然是簡單的原始圖像加噪聲,依然沒有考慮其他類型的退化。

自適應局部降低噪聲濾波器

  濾波器作用於局部區域SxyS_{xy},在該區域中心任意一點(x,y)上的響應基於四個量:1) g(x,y)g(x,y),帶噪圖像在點(x,y)(x,y)處的值;2) ση2\sigma_{\eta}^2,污染f(x,y)f(x,y)形成g(x,y)g(x,y)的噪聲的方差;3) mLSxym_L,S_{xy}中像素的局部均值;4) σL2\sigma_L^2SxyS_{xy}中像素的局部方差 ,並且我們希望濾波器能夠:

  • 如果ση2=0\sigma_{\eta}^2=0,則返回g(x,y)g(x,y)[零噪聲]
  • 如果σL2\sigma_L^2ση2\sigma_{\eta}^2高度相關,則返回g(x,y)g(x,y)一個近似值。典型地,高局部方差和邊緣相關,應保護這些邊緣。
  • 如果兩個方差相等,則返回SxyS_{xy}中像素的算數平均。這種情況發生在局部區域與整個圖像有相同特性時,並且局部噪聲將通過簡單的求平均來降低。

  基於此,表達式:
f^(x,y)=g(x,y)ση2σL2[g(x,y),mL] \hat f(x,y)=g(x,y)-\frac{\sigma_{\eta}^2}{\sigma_L^2}[g(x,y),m_L]
  這裏需要知道或估計ση2\sigma_{\eta}^2的值,上式中隱含σL2ση2\sigma_L^2\geq\sigma_{\eta}^2,這雖然合理(模型中的噪聲是加性的和位置獨立的),但也可能有特殊情況,因此,這裏若違反了不等式,應將這一比率設爲1,這造成了濾波器的非線性。當然也可以允許負數灰度的出現最後進行標定,但是會損失圖像的動態範圍。

自適應中值濾波器

  中值濾波器只要脈衝噪聲的空間密度不大,性能就會很好;自適應中值濾波器可以處理具有更大概率的脈衝噪聲,它的優點在於平滑非脈衝噪聲時試圖保留細節。

  考慮如下符號:

  • zmin=Sxyz_{min}=S_{xy}中最小灰度值
  • zmax=Sxyz_{max}=S_{xy}中最大灰度值
  • zmed=Sxyz_{med}=S_{xy}中灰度中值
  • zxy=z_{xy}=座標(x,y)(x,y)處的灰度值
  • Smax=SxyS_{max}=S_{xy}所允許的最大尺寸

  自適應中值濾波需要兩個進程:

進程A:

  • A1=zmedzminA_1=z_{med}-z_{min}
  • A2=zmedzmaxA_2=z_{med}-z_{max}
  • A1>0A_1>0A2<0A_2<0,則轉到進程B
  • 否則增大窗口尺寸
  • 如果窗口尺寸Smax\leq S_{max},則重複進程A
  • 否則輸出zmedz_{med}

進程B:

  • B1=zxyzminB_1=z_{xy}-z_{min}
  • B2=zxyzmaxB_2=z_{xy}-z_{max}
  • 如果B1>0B_1>0B2<0B_2<0,則輸出zxyz_{xy}
  • 否則輸出zmedz_{med}

  該算法有三個目的:去除椒鹽/脈衝噪聲,平滑其他非脈衝噪聲,減少物體邊界細化/粗化等失真。

  進程A的目的是確定中值濾波器的輸出zmedz_{med}是否是一個脈衝(黑或白),如果zmin<zmed<zmaxz_{min}< z_{med}< z_{max} ,則不可能是脈衝,這樣轉到B,看窗口的中心點是否是脈衝,若滿足進程中條件說明中心點也不是脈衝,這種情況下算法輸出zxyz_{xy},而若進程中兩個條件同時,說明像素值是一個極端值,輸出zmedz_{med}

  如果進程A確實找到了一個脈衝,它會擴大窗口尺寸知道到達最大尺寸,此時不能保證該值不是脈衝。


歡迎掃描二維碼關注微信公衆號 深度學習與數學   [每天獲取免費的大數據、AI等相關的學習資源、經典和最新的深度學習相關的論文研讀,算法和其他互聯網技能的學習,概率論、線性代數等高等數學知識的回顧]
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章