空间滤波概念
- 滤波:通过修改或者抑制给定图像的特定频率分量,常见有低通滤波器与高通滤波器。
- 空间滤波:将像素值使用该像素值及其邻域的值进行替换,替换方式有线性与非线性两种,即线性滤波器与非线性滤波器。
线性滤波器
一般方式为是使用一个矩阵(也成为核)与图像进行类似卷积运算,做乘积。
矩阵内部的数值决定了滤波器的功能。
(下图来自数字图像处理 第4版=DIGITAL IMAGE PROCESSING,FOURTH EDITION)
可分离滤波器核
将二维矩阵分解为两个一维向量的乘积。
G
(
X
,
Y
)
=
G
1
(
X
)
G
2
(
Y
)
G(X,Y)=G_1(X)G_2(Y)
G(X,Y)=G1(X)G2(Y)
如
w
=
[
1
1
1
1
1
1
1
1
1
]
w=\begin{equation} \left[\begin{array}{ccc} 1 & 1 & 1 \\ 1 & 1 & 1 \\ 1 & 1 & 1 \end{array} \right] \end{equation}
w=
111111111
可表示为
w
1
=
[
1
1
1
]
w
2
=
[
1
1
1
]
w_1=\begin{equation} \left[\begin{array}{ccc} 1 \\ 1 \\ 1 \end{array} \right] \end{equation} \hspace{1.5cm} w_2=\begin{equation} \left[\begin{array}{ccc} 1 & 1 & 1\\ \end{array} \right] \end{equation}
w1=
111
w2=[111]
两者乘积。
PS:判断一个核是否是可分离卷积核,即判断该卷积核是否是秩为1.若为1,即可分离,否则不可。
卷积可分离的好处:
假设图像大小为
M
∗
N
M*N
M∗N,卷积核大小为
m
∗
n
m*n
m∗n,直接做卷积的运算量包括
M
N
m
n
MNmn
MNmn次乘法和
M
N
m
n
MNmn
MNmn次加法。若使用可分离卷积,将
w
w
w分为
w
1
∗
w
2
w_1*w_2
w1∗w2,并且
w
1
w_1
w1为
m
∗
1
m*1
m∗1,
w
2
w_2
w2为
1
∗
n
1*n
1∗n,将图像矩阵与
w
1
w_1
w1和
w
2
w_2
w2分别做卷积得到运算量为
M
N
m
+
M
N
n
MNm+MNn
MNm+MNn,即
M
N
(
m
+
n
)
MN(m+n)
MN(m+n)。相比于之前的
M
N
m
n
MNmn
MNmn,大大减少了运算量。
可分离向量的确定:
根据矩阵的性质可知,秩为1的矩阵,每行之间只差常数倍,每列之间也只差常数倍,那么我们可以任意找一个行与列进行求解,当然需要保证该行与列都非零向量。
滤波器类型
线性滤波器
-
低通空间滤波器
\hspace{0.5cm} 主要作用于变化缓慢的区域,如光滑地面等;桌子边缘等为高频区域。
1.1 盒式滤波器核
\hspace{0.5cm} 该滤波器核的数值均为1,可使图片产生平滑效果。
1.2 低通高斯滤波器核
\hspace{0.5cm} 高斯核 w ( s , t ) = G ( s , t ) = K e − s 2 + t 2 2 σ 2 w(s,t) = G(s,t)=Ke^{-\frac{s^2+t^2}{2\sigma^2}} w(s,t)=G(s,t)=Ke−2σ2s2+t2
\hspace{0.5cm} 其中 s s s与 t t t为到坐标(以核心为原点), ( s 2 + t 2 ) 1 2 (s^2+t^2)^{\frac{1}{2}} (s2+t2)21为到原心的距离。
特别地,高斯核也是可分离的。 -
高通滤波器
\hspace{0.5cm} 通过边缘增强等方式作用于图像。
非线性滤波器
- 中值滤波
\hspace{0.3cm} 将某像素及其邻域内的像素进行排序,中心像素的值由邻域内的像素排序的中间值确定,尤其对椒盐噪声有消除作用。 - 最大值滤波器和最小值滤波器
\hspace{0.3cm} 最大值滤波器:将某像素及其邻域内的像素进行排序,中心像素的值由邻域内的像素排序最大值确定。
\hspace{0.3cm} 最小值滤波器:将某像素及其邻域内的像素进行排序,中心像素的值由邻域内的像素排序最大值确定。 - 中点滤波器
\hspace{0.3cm} 将某像素及其邻域内的像素进行排序,中心像素值由最大值与最小值的平均值确定,适用于处理随机分布的噪声,如高斯噪声或者均匀噪声。 - 修正
A
l
p
h
a
Alpha
Alpha均值滤波器
\hspace{0.3cm} 对中值滤波器的改进,将某像素及其邻域内的像素删除部分最低灰度值与最高灰度值,剩下的像素值进行计算算术平均值,作为中心像素值,适用于处理混合噪声,如椒盐噪声与高斯噪声的混合。
自适应滤波器
自适应重在考虑图像的不同特征点变化。
- 自适应局部降噪滤波器
\hspace{0.3cm} 该滤波器需要考虑的参数涉及带有噪声的图像像素值与噪声方差;滤波器中局部像素均值与局部方差。
带有噪声的图像像素值为 f ( x , y ) f(x,y) f(x,y)、噪声方差为 σ f \sigma_f σf、局部均值为 f x y ^ \hat{f_{xy}} fxy^、局部方差为 σ x y \sigma_{xy} σxy
四个参数的计算方式可由直方图得出频率与相关值乘积得到。
自适应的表达式为 f ˉ ( x , y ) = f ( x , y ) − σ f 2 σ x y 2 [ f ( x , y ) − f x y ^ ] \bar{f}(x,y)=f(x,y)-\frac{\sigma_f^2}{\sigma_{xy}^2}[f(x,y)-\hat{f_{xy}}] fˉ(x,y)=f(x,y)−σxy2σf2[f(x,y)−fxy^]
该式子的特点在于
\hspace{0.6cm} 若噪声的方差为0,则滤波的结果为 f ( x , y ) f(x,y) f(x,y);
\hspace{0.6cm} 若噪声的方差与局部方差相等,则滤波的结果为图像局部像素值的均值; - 自适应中值滤波器
\hspace{0.3cm} 对中值滤波的优化
在保留图像细节的同时平滑非冲激噪声(非变化剧烈)
与自适应局部降噪滤波器类似,在局部区域进行计算。
在局部区域中, z m i n z_{min} zmin表示最小灰度值, z m a x z_{max} zmax表示最大灰度值, z m e d z_{med} zmed表示灰度值中值, z x y z_{xy} zxy为坐标 ( x , y ) (x,y) (x,y)处的灰度值, S m a x S_{max} Smax表示局部区域的大小。
算法步骤:- 若 z m i n z_{min} zmin < z m e d z_{med} zmed< z m a x z_{max} zmax,则转到第二步;否则,增加局部区域大小,若局部区域大小小于 S m a x S_{max} Smax,重复步骤1,否则输出 z m e d z_{med} zmed
- 若
z
m
i
n
z_{min}
zmin <
z
x
y
z_{xy}
zxy<
z
m
a
x
z_{max}
zmax,则输出
z
x
y
z_{xy}
zxy,否则输出
z
m
e
d
z_{med}
zmed
算法的主要思想在于通过两层判断,旨在消除冲激噪声,如在第一步转到第二步,可以保证 z m e d z_{med} zmed为非冲激噪声;第二步中无论输出 z m e d z_{med} zmed还是 z x y z_{xy} zxy都达到了消除冲激噪声的目的。但如果最终在第一步中进行了输出,那么不能保证 z m e d z_{med} zmed是否为冲激噪声。
PS:所以该算法旨在尽力消除,不保证全部消除。