二、高斯滤波 高斯滤波也是通过卷积核与原图像卷积,像素加权得到,但与均值滤波不同的是卷积区域内像素的权值不再相同,而是满足二维正态(高斯)分布,离中心越近权值越大,离中心越远权值越小,这样可以有效抑制服从正态分布的噪声。二维高斯分布数学公式如下:
f
(
x
,
y
)
=
1
2
π
(
σ
x
2
+
σ
y
2
)
e
−
(
x
−
μ
x
)
2
2
σ
x
2
−
(
y
−
μ
y
)
2
2
σ
y
2
f(x,y)=\frac{1}{\sqrt{2\pi(\sigma_x^2+\sigma_y^2)}}e^{-\frac{(x-\mu_x)^2}{2\sigma_x^2}-\frac{(y-\mu_y)^2}{2\sigma_y^2}}
f(x,y)=2π(σx2+σy2)1e−2σx2(x−μx)2−2σy2(y−μy)2 因为后续要进行归一化所以前面的系数也不重要;
μ
x
、
μ
y
\mu_x、\mu_y
μx、μy均为卷积中心,最终我们用到的公式为:
f
(
x
,
y
)
=
A
e
−
(
x
−
μ
x
)
2
2
σ
x
2
−
(
y
−
μ
y
)
2
2
σ
y
2
f(x,y)=Ae^{-\frac{(x-\mu_x)^2}{2\sigma_x^2}-\frac{(y-\mu_y)^2}{2\sigma_y^2}}
f(x,y)=Ae−2σx2(x−μx)2−2σy2(y−μy)2 通过这个公式计算出相应大小的卷积核之后再进行归一化,如设置
σ
=
1.5
\sigma=1.5
σ=1.5后计算3×3卷积核为:
第一、二个参数为输入输出图像; 第三个参数为窗函数的线性尺寸,应该为正奇数,即3×3,5×5这样的方形窗。 六、双边滤波 双边滤波同样是非线性滤波,从某种意义上来说它与高斯滤波很相似,高斯滤波考虑了距离对于权重的影响,双边滤波再次基础之上考虑了像素相似程度对与权重的影响,从而在边缘附近,离得较近的点由于像素值相差过大权重小,离得较远的点距离过大权重小,从而可以较好的保留边缘信息,但也因此不能很好的滤去高频信息。数学公式如下:
g
(
i
,
j
)
=
∑
k
,
l
f
(
k
,
l
)
ω
(
i
,
j
,
k
,
l
)
∑
k
,
l
ω
(
i
,
j
,
k
,
l
)
g(i,j)= {{\sum_{k,l}f(k,l)\omega(i,j,k,l)}\over{\sum_{k,l}\omega(i,j,k,l)}}
g(i,j)=∑k,lω(i,j,k,l)∑k,lf(k,l)ω(i,j,k,l) 其中
f
(
k
,
l
)
f(k,l)
f(k,l)为原像素值,
w
(
i
,
j
,
k
,
l
)
w(i,j,k,l)
w(i,j,k,l)为加权值取决于空间域核和色彩域核的乘积 空间域核:
d
(
i
,
j
,
k
,
l
)
=
e
−
(
i
−
k
)
2
+
(
j
−
l
)
2
2
σ
d
2
d(i,j,k,l)=e^{-\frac{(i-k)^2+(j-l)^2}{2\sigma_d^2}}
d(i,j,k,l)=e−2σd2(i−k)2+(j−l)2 色彩域核:
r
(
i
,
j
,
k
,
l
)
=
e
−
∣
∣
f
(
i
,
j
)
−
f
(
k
,
l
)
∣
∣
2
2
σ
r
2
r(i,j,k,l)=e^{-\frac{||f(i,j)-f(k,l)||^2}{2\sigma_r^2}}
r(i,j,k,l)=e−2σr2∣∣f(i,j)−f(k,l)∣∣2 权重:
w
(
i
,
j
,
k
,
l
)
=
e
−
(
i
−
k
)
2
+
(
j
−
l
)
2
2
σ
d
2
−
∣
∣
f
(
i
,
j
)
−
f
(
k
,
l
)
∣
∣
2
2
σ
r
2
w(i,j,k,l)=e^{-\frac{(i-k)^2+(j-l)^2}{2\sigma_d^2}-\frac{||f(i,j)-f(k,l)||^2}{2\sigma_r^2}}
w(i,j,k,l)=e−2σd2(i−k)2+(j−l)2−2σr2∣∣f(i,j)−f(k,l)∣∣2 opencv函数原型如下: