二维高斯函数(均值为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}} G(x,y)=2πδ21e−2δ2x2+y2
高斯滤波器的平滑程度是由参数σ表征的,σ越大,高斯滤波器的频带就越宽,平滑程度就越好.通过调节平滑程度参数σ。高斯滤波器的截止频率可以由标准差来描述:
f c = 1 2 π δ f_c = \frac 1 {2 \pi \delta} fc=2πδ1
一般情况下,截止频率都定义在半功率点,也就是滤波器的功率谱响应降到一半(-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 \|) Ifiltered(x)=W1pxi∈Ω∑I(xi)fτ(∥I(xi)−I(x)∥)gs(∥xi−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 \|) Wp=xi∈Ω∑fτ(∥I(xi)−I(x)∥)gs(∥xi−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 w(i,j,k,l)=exp⟮−2δ2(i−k)2+(j−l)2−2δ2∥I(i,j)−I(k,l)∥2⟯
像素(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)} ID(i,j)=∑k,lw(i.j.k.l)∑k,lI(k,l)w(i.j.k.l)
双边滤波的效果如下:
Retinex可以在灰度动态范围压缩,边缘增强和颜色恒定性三个方面达到平衡。基本原理是将一副图像分为亮度图像和反射图像两部分,然后通过降低亮度图像对反射图像的影响而达到增强图像的目的。可以描述为:
S ( x , y ) = R ( x , y ) ∙ L ( x , y ) S(x,y) = R(x,y) \bullet L(x,y) S(x,y)=R(x,y)∙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)) 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)] 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 G(x,y)=λ∗expc2−(x2+y2)λ是常量矩阵,使得:∫∫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 [ I ( x , y ) ] ∗ G i ( x , y ) ] } r(x,y) = \sum _{i = 1}^{N}w_i\{ log[I(x,y)]-log[I(x,y)]*G_i(x,y)]\} r(x,y)=i=1∑Nwi{log[I(x,y)]−log[I(x,y)]∗Gi(x,y)]}