滤波是图像处理中常用的技术,可以锐化图像、模糊图像、去除噪声、增强图像等等。这里只讲空间滤波,频率域滤波将在以后讲。
空间滤波:简单来说,是用一个模板(3x3矩阵、5x5矩阵…一般为奇数)扣在图像上,用模板中每一个元素对扣住的范围中对应的像素进行数学操作,将产生的数值赋给模板中心点所对应。
分类:线形空间滤波、非线形空间滤波。
线性空间滤波:基于计算乘积和(线形操作)的滤波。例如New=a*g1+b*g2+c*g3+d*g4+e*g5,这是一个线形操作。
非线性空间滤波:基于某种机制进行滤波,如中值滤波,对模板范围内的图像像素选取中间值,赋予中心点对应的像素。
线性空间滤波
这里必须要理解两个概念:相关和卷积。这两个在具体运算上与前面所有的空间滤波相同。两个在运算上的不同点是,卷积在进行运算前将模板旋转180度(逆、顺时针均可以)。卷积和相关的具体概念容易把人讲糊涂,这里只讲具体应用,只需要知道怎么运算的即可。
运算过程:
相关:R5(中心像素)=R1G1 + R2G2 + R3G3 + R4G4 + R5G5 + R6G6 + R7G7 + R8G8 + R9G9
卷积(模板又称核,旋转180度):
R5(中心像素)=R1G9 + R2G8 + R3G7 + R4G6+ R5G5 + R6G4 + R7G3 + R8G2 + R9G1
MATLAB中提供了函数imfilter()进行滤波操作。