滤波器的本质
其本质是一种特殊的函数,即在图像的局部区域用提供的明确计算方法对区内的像素值进行计算,用最后的计算结果替代该局部区域的中心值。
$$ V=G(X,W) $$其中X是矩阵(局部区域),W是向量(计算权重)
滤波器的几种大类型
- 线性滤波器:即对矩阵直接加权求和,G(X,W)=X·W
- 非线性滤波器:不满足线性滤波器要求的,即为非线性滤波器,典型的有最大值/最小值/均值
- 自适应滤波器:线性滤波中的W在滑动过程中固定不变,自适应滤波的W则是在滑动过程中会随着窗口内像素的性质和结构发生变化。但计算代价更高更难优化加速
图像滤波器
1.平滑滤波器
均值滤波、中值滤波、高斯滤波的基本原理都是滑动窗口,以指定的计算方式得到其中的值
1.1高斯滤波
高斯滤波器使图像平滑,用于去除噪声。主要计算方法是将中心像素的周围像素按照高斯分布加权平均进行平滑化,这种二维权值通常被称为卷积核或滤波器。
$$ f(x,y)=\frac{1}{2Π\sigma ^{2} } e^{-\frac{x^{2}+y^{2} }{2\sigma ^{2} } } $$1.2中值滤波
中值滤波是取滑动窗口中像素的最大值
$$ \begin{pmatrix} 1& 2 & 3\\ 4& 5&6 \\ 7& {\color{Red} 8} &7 \end{pmatrix} $$1.3均值滤波
取滑动窗口中的均值,该滤波器对减少图像中的随机噪声有效
2.边缘检测滤波器
边缘检测目的是标识数字图像中亮度变化明显的点,提取图像中的线条,该种检测常在灰度图中进行
2.1 Prewitt滤波器
该滤波器的设计思想是真正的边界点在水平方向和垂直方向上的相邻点应该也同样为边界点,因此以更大的边缘检测滤波器,考虑周围更多的点会使得边缘检测更准确。算子模板有:
$$ G_{X}= \begin{pmatrix} -1& 0 & 1\\ -1& 0&1 \\ -1& 0 &1 \end{pmatrix},G_{Y}=\begin{pmatrix} -1 & -1 &-1\\ 0& 0 &0\\ 1&1&1 \end{pmatrix} $$计算方法是卷积。
2.2 Sobel滤波器
Sobel算子在Prewitt算子的基础上增加了权重的概念,认为相邻点的距离远近对当前像素点的影响是不同的,距离越近的像素点对应当前像素的影响越大,从而实现图像锐化并突出边缘轮廓。算子模板:
$$ G_{X}= \begin{pmatrix} -1& 0 &1\\ -2& 0 &2 \\ -1& 0 &1 \end{pmatrix},G_{Y}=\begin{pmatrix} -1 & -2 &-1\\ 0 & 0 &0\\ 1 & 2 & 1 \end{pmatrix} $$2.3 Laplacian滤波器
前面两种是一阶微分,而Laplacian滤波器则是二阶微分滤波器。其推导过程为: 一阶差分:
$$ \begin{aligned} I_{x}(x,y) &= I(x+1,y) - I(x,y), \\ I_{y}(x,y) &= I(x,y+1) - I(x,y). \end{aligned} $$二阶差分:
$$ \begin{aligned} I_{xx}(x,y) &= I(x+2,y) - 2I(x+1,y) + I(x,y) \\ &= I(x+1,y) - 2I(x,y) + I(x-1,y), \\ I_{yy}(x,y) &= I(x,y+1) - 2I(x,y) + I(x,y-1). \end{aligned} $$因此拉普拉斯算子为:
$$ \nabla^2 I(x,y) = I_{xx}(x,y) + I_{yy}(x,y). $$其卷积核为(四邻域模板):
$$ \begin{pmatrix} 0 & \;1 & 0 \\ 1 & -4 & 1 \\ 0 & \;1 & 0 \end{pmatrix} $$八邻域模板为:
$$ \begin{pmatrix} 1 & 1 & 1 \\ 1 & -8 & 1 \\ 1 & 1 & 1 \end{pmatrix} $$算法基本流程为:
-
判断图像中心像素灰度值与它周围其他像素的灰度值,如果中心像素的灰度更高,则提升中心像素的灰度;反之降低中心像素的灰度,从而实现图像锐化操作;
-
在算法实现过程中,Laplacian算子通过对邻域中心像素的四方向或八方向求梯度,再将梯度相加起来判断中心像素灰度与邻域内其他像素灰度的关系;
-
最后通过梯度运算的结果对像素灰度进行调整。
基本规律:
-
当邻域内像素灰度相同时,模板的卷积运算结果为0;
-
当中心像素灰度高于邻域内其他像素的平均灰度时,模板的卷积运算结果为正数;
-
当中心像素的灰度低于邻域内其他像素的平均灰度时,模板的卷积为负数。对卷积运算的结果用适当的衰弱因子处理并加在原中心像素上,就可以实现图像的锐化处理。
2.4MAX-MIN滤波器
MAX-MIN滤波器是一种常见的边缘检测滤波器,其使用网格内像素的最大值和最小值的差值对网格内像素重新赋值。