1
工业机器视觉:基于灵闪平台的开发及应用
1.9.1.3 7.1.3 局部预处理
7.1.3 局部预处理

根据预处理的目的,可以将常用的局部预处理方法分为两组:

第一组,平滑(smoothing):目的在于抑制图像中的噪声或其他小的波动,这等同于在傅里叶变换中抑制图像中的高频部分。

第二组,梯度算子(Gradient Operators):目的在于在图像中显现图像函数快速变化的位置,确定图像的边缘。

(1)图像平滑

图像平滑主要用于抑制图像噪声,它利用了图像数据的冗余性。图像中新值的计算是基于某个邻域中数值的平均,以下介绍两种常用的滤波方法:中值滤波(Median Filtering)和均值滤波(Mean Filtering)。

均值滤波是将一个m×n(m、n为奇数)大小的内核放在图像上,中间像素的值用内核覆盖区域的像素平均值替代。图7-2(a)为带有椒盐噪声的原图像,均值滤波对高斯噪声的表现比较好,对椒盐噪声的表现比较差,均值滤波效果如图7-2(b)所示。而中值滤波器是使用滤波器窗口包含区域的像素值的中值来得到窗口中心的像素值,本质上是一种非线性平滑滤波器。中值滤波器对于去除脉冲噪声或者椒盐噪声非常有效,如图7-2(c)所示,但其对于高斯噪声的滤波效果较差。

图7-2 图像平滑处理

(2)边缘检测算子

边缘检测算子(Edge Detectors)是一组用于亮度函数中定位变化的非常重要的局部图像预处理方法,边缘是指亮度函数发生急剧变化的位置。微积分学中用导数描述连续函数的变化,图像函数依赖于图像平面坐标上的两个坐标值。因此,使用偏导数来描述边缘的检测算子,图像函数的变化可以用指向图像函数最大增长方向的梯度来表示。

常用的梯度算子有以下几种。

①Roberts算子:使用当前像素的2×2邻域,主要缺点是对噪声具有高度敏感性,原因在于仅使用了很少几个像素来近似梯度。

②Laplace算子:算子∇2是近似只给出梯度幅值的二阶导数的方法,主要缺点是会对图像中的某些边缘产生双重响应。

③Prewitt算子:对于3×3的卷积掩膜,在8个可能方向是估计梯度,具有最大幅值的卷积给出梯度方向。由于其是加权平均算子,所以对噪声有抑制作用,但是像素平均相当于对图像进行滤波,所以Prewitt算子的主要缺点是对边缘定位不够精确。

④Sobel算子:水平和垂直边缘的检测,对灰度渐变和噪声较多的图像处理效果较好,主要缺点是对边缘定位不是很准确。

(3)Canny边缘提取

Canny于1986年提出了一种新的边缘检测方法,它对受白噪声影响的阶跃型边缘的检测效果最优。Canny检测算子的最优性与以下三个标准有关。

①检测标准:不丢失重要的边缘,不应有虚假的边缘。

②定位标准:实际边缘与检测到的边缘位置之间的偏差最小。

③单响应标准:将多个响应降低为单个边缘响应。

由噪声引起的对单个边缘的虚假响应所造成的纹状(streaking)问题在边缘检测中是非常普遍的。边缘检测算子的输出通常要做阈值化处理,以确定哪些边缘是突出的。纹状是指边缘轮廓断开的情形,是由算子输出超出或低于阈值的波动引起的。如果边缘响应超过给定高阈值时,这些像素点构成了某个尺度下的边缘检测算子确定的输出。个别的弱响应通常对应于噪声,但是如果这些点与某些具有强响应的点连接时,它们很可能是图像中真实的边缘。这些连接的像素点,当其响应超过给定的低阈值时,就被当作边缘像素。这里的低阈值和高阈值需要根据对信噪比的估计来确定。

Canny提出了特征综合方法:首先,标记出所有由最小尺度算子得到的突出边缘,假定具有较大尺度算子的边缘是根据它们合成得到的;然后,将合成得到的边缘响应和较大尺度的实际边缘响应进行比较,仅当合成得到的边缘响应比预测的响应强时,才能将其标记为边缘。使用Canny边缘提取的效果图如图7-3所示。

图7-3 Canny边缘提取效果图

这一过程可以对一个尺度序列重复进行,通过不断加入较小的尺度中没有的边缘点的方式累计起来生成边缘图。

(4)频域的局部预处理

通过傅里叶变换计算两幅图像在频域内的卷积从而进行图像滤波或者图像梯度的计算,这种滤波操作通常被称作频率滤波。基本的频率滤波包括线性低通、高通和带通滤波器。

最常见的图像增强问题包括噪声抑制、边缘增强与去噪,这些都能在频域内完成。对于频率滤波,其中两个重要代表是高斯滤波器和巴特沃斯滤波器,减弱系数为0.5的巴特沃斯滤波器,可以保留适当的低频,使图像体现出更多细节。另一种作用于频域的预处理技术是同态滤波(Homomorphic Filtering),用于去除相乘性的噪声,增加对比度,同时在整幅图像内规范化图像亮度。

(5)角点(兴趣点)检测

角点是目标轮廓上曲率(曲率是曲线弯曲的程度或偏离直线的程度)的局部极大值点,是物体轮廓的决定性特征。通俗地说,在一幅图像中,可以认为角点是物体轮廓线的连接点,如图7-4所示。

图7-4 角点图

当拍摄视角发生变化时,这些特征点仍能很好地保持稳定的属性。角点没有明确的数学模型,但一般认为角点是二维图像亮度变化剧烈的点或图像边沿曲线的极大值点。这些点保留着图像中图形的重要特征,同时可以有效地减少信息的数据量,提高信息含量,加快计算速度,有利于图像的可靠性匹配,使得对图像的实时处理成为可能。角点还具有旋转不变性,利用角点特征进行匹配可以大大提高匹配的速度。关于角点的描述主要有如下特征。

①角点是一阶导数的局部最大值(极大值)。

②角点是两条及以上边沿的交点。

③角点指示了物体边沿变化不连续的方向。

④角点处的一阶导数最大,二阶导数为零。

⑤角点是指图像中梯度值和梯度方向的变化速率都很高的点。

角点检测最原始的方法是取某个像素的一个邻域窗口,当这个窗口在各个方向上进行小范围移动时,观察窗口内像素灰度值均值的变化。如图7-5所示,可以将一幅图像大致分为三个区域(平滑区域flat、边缘区域edge、夹角区域corner),这三个区域的像素灰度值变化是不一样的,依据不同的灰度值变化特征可以区分开各个区域。

图7-5 不同像素灰度值的区域

常用的角点检测器有Moravec检测器和Harris角点检测器。

Moravec检测器是最简单的角点检测器,它是高对比度的最大像素值,这些点都在角点或者锐边处。

Harris角点检测器比Moravec角点检测器有所提升。一方面,它考虑角评分(平方差的和)的差分,其对二维平移和旋转、少量光照变化、少量视角变化都不敏感,而且其计算量很小;另一方面,当有较大视角变化以及对比鲜明的剧烈变化时,它就失去了原先的不变性。