1. 程式人生 > >高斯濾波、雙邊濾波、Retinex影象增強的學習

高斯濾波、雙邊濾波、Retinex影象增強的學習

一、高斯濾波

二維高斯函式(均值為0),以及 δ = 6影象:
G ( x , y ) = 1

2 π δ 2 e
x 2 + y 2
2 δ 2
G(x,y) = \frac 1 {2\pi \delta ^2}e^{- \frac{x^2+y^2}{2\delta ^2}}

高斯濾波器的平滑程度是由引數σ表徵的,σ越大,高斯濾波器的頻帶就越寬,平滑程度就越好.通過調節平滑程度引數σ。高斯濾波器的截止頻率可以由標準差來描述:
f c = 1 2 π δ f_c = \frac 1 {2 \pi \delta}
一般情況下,截止頻率都定義在半功率點,也就是濾波器的功率譜響應降到一半(-3dB),或者是幅度譜的0.707處。另外,二維高斯函式具有旋轉對稱性,這也使得它會模糊掉影象的邊緣資訊。

二、雙邊濾波

Bilateral filter 是非線性的帶有邊緣保護的影象降噪平滑濾波器。它以畫素鄰域附近的加權平均值代替原畫素值。權重可以選擇高斯分佈,但是權重不僅僅有距離畫素的歐式距離決定,還受到輻射差值的影響,這可以保留明顯的邊緣。雙邊濾波的定義如下:
I f i l t e r e d ( x ) = 1 W p x i Ω I ( x i ) f τ ( I ( x i ) I ( x ) ) g s ( x i x ) I^{filtered}(x) = \frac 1 W_p\sum_{x_i \in \Omega}I(x_i)f_\tau(\|I(x_i) - I(x)\|)g_s(\|x_i - x \|)
W p = x i Ω f τ ( I ( x i ) I ( x ) ) g s ( x i x ) W_p = \sum_{x_i \in \Omega}f_\tau(\|I(x_i) - I(x)\|)g_s(\|x_i - x \|)
權重由空間接近程度和強度差共同決定,例如要對影象的(i,j)點降噪,需要用到它的鄰域內的點(k,l),那落在個點上的權重可取為:
w ( i , j , k , l ) = e x p ( i k ) 2 + ( j l ) 2 2 δ 2 I ( i , j ) I ( k , l ) 2 2 δ 2 w(i,j,k,l)=exp\lgroup -\frac{(i-k)^2 + (j-l)^2}{2\delta^2} -\frac{\|I(i,j)-I(k,l) \|^2}{2\delta ^2}\rgroup
畫素(i,j)濾波後的值可有下式給出:
I D ( i , j ) = k , l I ( k , l ) w ( i . j . k . l ) k , l w ( i . j . k . l ) I_D(i,j) = \frac{\sum _{k,l}I(k,l)w(i.j.k.l)}{\sum _{k,l}w(i.j.k.l)}
雙邊濾波的效果如下:
在這裡插入圖片描述

三、Retinex演算法

Retinex可以在灰度動態範圍壓縮,邊緣增強和顏色恆定性三個方面達到平衡。基本原理是將一副影象分為亮度影象和反射影象兩部分,然後通過降低亮度影象對反射影象的影響而達到增強影象的目的。可以描述為:
S ( x , y ) = R ( x , y ) L ( x , y ) S(x,y) = R(x,y) \bullet L(x,y)
其中R(x,y)表示入射光,L(x,y)表示物體的反射性質。S(x,y)被觀察者接受就形成了彩色影象。入射光決定影象中畫素能達到的動態範圍,反射物體決定了影象的內在性質。將上式取對數:
l o g ( S ( x , y ) ) = l o g ( R ( x , y ) ) + l o g ( L ( x , y ) ) log(S(x,y)) = log(R(x,y)) + log(L(x,y))
單尺度retinex演算法:
亮度影象由原影象通過G函式得到,通常這個函式為高斯低通函式。
l o g ( R ( x , y ) ) = l o g [ S ( x , y ) ] l o g [ S ( x , y ) G ( x , y ) ] log(R(x,y)) = log[S(x,y)] - log[S(x,y) * G(x,y)] G ( x , y ) = λ e x p ( x 2 + y 2 ) c 2 λ 是常量矩陣,使得: G ( x , y ) d x d y = 1 G(x,y) = \lambda *exp{\frac {-(x^2 + y^2)}{c^2}} \\ \lambda \text{是常量矩陣,使得:} \int \int G(x,y)dxdy = 1
多尺度retinex演算法:
多尺度演算法通常是單尺度的加權平均,若N = 3,則每個w = 1/3;G函式與單尺度一樣是高斯函式,分別帶有不同的尺度c,可取值:15\80\200.
r ( x , y ) = i = 1 N w i { l o g [ I ( x , y ) ] l o g [