邻域算子作用在给定像素周围的像素上以计算输出值,可以实现图像滤波、图像的平滑和锐化、图像边缘的增强和图像噪声的去除。邻域算子有线性和非线性算子。线性算子是指用不同的权重结合一个小的邻域内的像素,相当于覆盖一个模板。非线性算子如形态学运算、距离变换。
线性滤波运算:
其中权重核或掩膜h(k,l)常称为“滤波系数”。上面算子可以简记为:
通常图像滤波会存在边界效应:会使角点处的像素变黑,主要是因为当卷积核超出原始图像边界时,原始图像边界外的部分被认为是有效的,并用0填塞。
为了抵消这种效应,通常采用对图像填塞或扩展的模式:
0填塞:将原图像之外的值设置为0(??这样不还是边界效应吗?)。
常数填塞(边框彩色):在原图像之外的像素值设置为确定的边界值。
夹取填塞:不限定的复制边缘像素的值。
重叠填塞:以环状形态环绕图像进行循环。
镜像填塞:将像素围绕图像边界进行镜像反射。
通过一个具体例子可以清楚的看到,卷积运算,每个像素都需要K^2次操作,K时卷积核的大小。运算效率较低,通常采用如下计算方法来加速:先用一维行向量进行卷积,接着用一维列向量进行卷积,(每个像素需要运算次数为 为2K次操作)。那么就要考虑尽量使用可分离的卷积核。
最简单的线性滤波是移动平均或方框滤波器,它将KxK窗口中的像素值的平均值作为输出。
线性滤波算子长用在边缘提取的预处理阶段和兴趣点检测的算法中。
带通滤波器和导向滤波器:
通常将一阶或二阶导数的滤波器称为带通滤波器,因为他可以同时滤出低频和高频。
导向滤波器,结论是现在可以构造具有越来越强的方向选择性的方向导数滤波器,使得滤波器只在方向上具有很强的局部一致性的边缘上有响应。导向滤波器常用来构造特征的描述子和边缘检测器。