1.高斯滤波以及高斯噪声
高斯滤波作为一种平滑线性滤波器,可以抑制图像的“尖锐”变化,对于抑制服从正态分布的噪声效果非常好,但同时会损失大量的边缘信息。学习高斯滤波首先要了解高斯核公式以及高斯噪声:
(1)高斯噪声:高斯噪声与椒盐噪声都是图像中常见的噪声,椒盐噪声是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声,*高斯噪声是由于图像传感器在拍摄时市场不够明亮、亮度不够均匀;电路各元器件自身噪声和相互影响;图像传感器长期工作,温度过高导致的。*高斯噪声在图像中每个像素点上都会出现并且服从高斯分布。其计算公式如下:
P
i
x
e
l
g
a
u
s
s
(
i
)
Pixel_{gauss}(i)
Pixelgauss(i) =
P
I
x
e
l
o
r
i
PIxel_{ori}
PIxelori +
F
(
m
e
a
n
s
,
s
i
g
m
a
)
F(means,sigma)
F(means,sigma)
F为服从高斯分布的随机生成函数,means sigma 为均值和方差,means默认为0,sigma越大分布越平缓,噪声影响越大。如说添加浓度为30的高斯噪声就是sigma设置为30。
(2)高斯滤波
高斯滤波通过gauss公式来构建其kernel,起公式为:
P
i
x
e
l
f
(
x
,
y
)
=
1
2
π
σ
e
−
x
2
+
y
2
2
σ
2
Pixel_{f}(x,y)=\frac{1}{\sqrt{2\pi\sigma}}e^{-\frac{x^{2}+y^{2}}{2\sigma^{2}}}
Pixelf(x,y)=2πσ1e−2σ2x2+y2
由于需要进行归一化,所以代码中不需要写前面的常数。根据上述公式可以得到
N
∗
N
N*N
N∗N的kernel。
然后进行卷积操作,完成滤波。
2.双边滤波
双边滤波相比于高斯滤波,除了考虑距离问题之外,还考虑了相似性。
计算公式是:
h
(
z
)
=
P
(
z
)
1
s
u
m
w
e
i
g
h
t
∗
g
a
u
(
z
)
∗
s
p
a
(
z
)
h(z)=P(z)\frac{1}{sum_{weight}}*gau(z)*spa(z)
h(z)=P(z)sumweight1∗gau(z)∗spa(z)
g
a
u
(
x
,
y
)
=
e
−
d
x
2
+
d
y
2
2
π
σ
2
gau(x,y)=e^{-\frac{d_x^2+d_y^2}{2\pi\sigma^2}}
gau(x,y)=e−2πσ2dx2+dy2
s
p
a
(
x
,
y
)
=
e
−
I
1
−
I
2
2
π
σ
2
spa(x,y)=e^{-\frac{I_1-I_2}{2\pi\sigma^2}}
spa(x,y)=e−2πσ2I1−I2
P
(
z
)
P(z)
P(z)表示某一点像素数值,
1
s
u
m
w
e
i
g
h
t
\frac{1}{sum_{weight}}
sumweight1表示归一化参数,
g
a
u
(
z
)
和
s
p
a
(
z
)
gau(z)和spa(z)
gau(z)和spa(z)分别表示距离权重和相似性权重。
3.邻域滤波
邻域滤波包含均值滤波、中值滤波、高斯滤波?(暂时不知道是不是,又懂的可以告诉一下^ ^)
4.非局部均值滤波(NL-Means)
非局部均值滤波属于双边滤波的一种优化,其计算公式如下:
N
L
[
v
]
(
i
)
=
∑
j
∈
I
w
(
i
,
j
)
v
(
j
)
NL[v](i)=\displaystyle\sum_{j\in I}^{} w(i,j)v(j)
NL[v](i)=j∈I∑w(i,j)v(j)
w
(
i
,
j
)
=
1
∑
e
−
(
N
i
−
N
j
)
2
h
2
)
e
−
(
N
i
−
N
j
)
2
h
2
w(i,j)=\frac{1}{\sum{e^{-\frac{(N_{i}-N_{j})^2}{h^2}}})}e^{-\frac{(N_{i}-N_{j})^2}{h^2}}
w(i,j)=∑e−h2(Ni−Nj)2)1e−h2(Ni−Nj)2
公式含义为选取中心点为v的k*k的kernel,设置固定尺寸的搜索区域,对索引为i的像素点为中心的区域进行像素点遍历,计算每一个点的权重,然后进行加权地累加,得到最终该点的滤波结果。
v是卷积核,i是滤波像素点索引,j是搜索范围内的像素点索引。
w()是权重求解方法,Ni和Nj是两个核区域。h是调节参数,一般20。