本文介绍五种常见的图像滤波方式:线性滤波(方框滤波、均值滤波、高斯滤波);非线性滤波(中值滤波、双边滤波)。提醒,本文主要是算法公式,没有具体完整的代码。
一、线性滤波
总的来说,这三种线性滤波原理:每个像素的输出值是输入像素的加权和。其处理方式都是将图像像素与相应的核进行卷积,核即是权重(下图中中间3*3大小的图就是核),其作用是将原图像素按权重进行分配。简单讲,卷积就是选取原图像与核相同大小的部分(下图左侧对照部分),然后与核对应相乘相加,所得的值赋给原图中的锚点(下图是中心点,右侧对照部分)(有关卷积的讲解可参考下图的转载链接)。
卷积(图像转自https://blog.csdn.net/zouxy09/article/details/49080029,侵删)
所以说,这三种滤波方式的区别在于卷积核的不同,下面分别叙述。
1.1方框滤波和均值滤波的卷积核
如下图,K即为方框滤波的核,可以看到无论a为何值,矩阵内的每一个元素都相等,卷积时对像素的权重都一样。均值滤波是方框滤波归一化后的特殊处理,下图中,当normalize = ture时的K为均值滤波的核。个人觉得,方框滤波和均值滤波没有实质上的区别。
1.2高斯滤波的卷积核
我们先来看一下一维高斯函数,如下图,a代表尖峰高度,b代表尖峰中心的x坐标,c是标准方差,代表尖峰的宽度。图3表示“3σ”原则,意思是,虽然定义域的范围是正无穷到负无穷,但是曲线的绝大部分都在“-3σ - 3σ”之间。