空间滤波概念
- 滤波:通过修改或者抑制给定图像的特定频率分量,常见有低通滤波器与高通滤波器。
- 空间滤波:将像素值使用该像素值及其邻域的值进行替换,替换方式有线性与非线性两种,即线性滤波器与非线性滤波器。
线性滤波器
一般方式为是使用一个矩阵(也成为核)与图像进行类似卷积运算,做乘积。
矩阵内部的数值决定了滤波器的功能。
(下图来自数字图像处理 第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:所以该算法旨在尽力消除,不保证全部消除。