53第五章图像预处理一般情况下,成像系统获取的图像(即原始图像)由于受到种种条件限制和随机干扰,往往不能在视觉系统中直接使用,必须在视觉信息处理的早期阶段对原始图像进行灰度校正、噪声过滤等图像预处理.对机器视觉系统来说,所用的图像预处理方法并不考虑图像降质原因,只将图像中感兴趣的特征有选择地突出,衰减其不需要的特征,故预处理后的输出图像并不需要去逼近原图像.这类图像预处理方法统称为图像增强.图像增强技术主要有两种方法:空间域法和频率域法.空间域方法主要是在空间域内对图像像素直接运算处理.频率域方法就是在图像的某种变换域,对图像的变换值进行运算,如先对图像进行付立叶变换,再对图像的频谱进行某种计算(如滤波等),最后将计算后的图像逆变换到空间域.本章首先讨论直方图修正方法,然后介绍各种滤波技术,其中,高斯平滑滤波器将作比较深入的讨论.5.1直方图修正许多图像的灰度值是非均匀分布的,其中灰度值集中在一个小区间内的图像是很常见的(图5.2(a)所示的对比度很弱的图像).直方图均衡化是一种通过重新均匀地分布各灰度值来增强图像对比度的方法.经过直方图均衡化的图像对二值化阈值选取十分有利.一般来说,直方图修正能提高图像的主观质量,因此在处理艺术图像时非常有用.直方图修正的一个简单例子是图像尺度变换:把在灰度区间],[ba内的像素点映射到[,]zzk1区间.一般情况下,由于曝光不充分,原始图像灰度区间],[ba常常为空间[,]zzk1的子空间,此时,将原区间内的像素点z映射成新区间内像素点z的函数表示为zzzbazazk'()11(5.1)上述函数的曲线形状见图5.1(a).上述映射关系实际上将],[ba区间扩展到区间[,]zzk1上,使曝光不充分的图像黑的更黑,白的更白.如果图像的大多数像素灰度值分布在区间],[ba,则可以使用图5.1(b)所示的映射函数:bzzazzbzazazabzzzkk111)((5.2)若要突出图像中具有某些灰度值物体的细节,而又不牺牲其它灰度上的细节,可以采用分段灰度变换,使需要的细节灰度值区间得到拉伸,不需要的细节得到压缩,以增强对比度,如图5.1(c)所示.当然也可以采用连续平滑函数进行灰度变换,见图5.1(d).这一方法存在的问题是,当直方图被延伸后,所得到的新直方图并不均匀,也就是说,各灰度值所对应的像素数并不相等.因此,更好的方法应该是既能扩展直方图,又能使直方图真正地呈现均匀性.54图5.1灰度变换如果预先设定灰度值分布,那么就可以用下面的方法:假定pi是原直方图中在灰度级zi上的像素点的数目,iq是要得到的直方图在灰度级zi上的像素点的数目.从原直方图的左边起,找到灰度值k1,使得:111111kiikiipqp(5.3)灰度级1211,...,,kzzz上的像素点将映射到新图像的灰度级为z1的像素点上.现在求灰度值k2使得:2212111kiikiipqqp(5.4)下一区间像素值121,...,kkzz被映射到灰度级z2上.重复这一过程直到原始图像的所有灰度值都得到处理.这一方法的处理结果示于图5.2中.在那里,原始图像对比度很弱,原因是灰度值分布在一小区间内.直方图均衡化通过映射灰度值来逼近均匀分布,从而改善了对比度.但是这一方法在均衡化后的直方图中仍然留下了间隙,除非输入图像中具有同一灰度级的像素点在输出图中被延伸至几个灰度级.如果直方图被延伸,则在原始图像中具有相同灰度值的像素点在新的图像中可能会被延伸成不同的灰度值.最简便的方法就是为相同灰度值的每一个像素点分配一个随机的输出值.为了把像素点均匀地分布在n个输出值11,...,,nkkkqqq的范围内,假定使用一个随机数发生器,其产生的随机数均匀地分布在[0,1)内.输出的像素点标号可以由随机数r通过计算公式][rnk得到.换句话说,对每一次决策,抽出一个随机数,乘以区间内的输出值数目n后四舍五入取整,最后将这一偏移量加到最低标号k上.55图5.2上图为原始图像及其直方图.下图为直方图均衡化后的图像及其直方图.5.2图像线性运算5.2.1线性系统许多图像处理系统都可以用一个线性系统作为模型:输入线性系统输出(,)xygxy(,)对于线性系统,当系统输入是一个中心在原点的脉冲(,)xy时,输出gxy(,)就是系统的脉冲响应.此外,如果系统响应与输入脉冲的中心位置无关,则该系统称为空间不变系统.输入空间不变线性系统输出),(00yyxx),(00yyxxg线性空间不变系统(LinearSpaceInvariant,LSI)完全能用其脉冲响应来描述:输入LSI系统输出fxy(,)gxy(,)hxy(,)其中,fxy(,)和hxy(,)是输入和输出图像.上面的系统必须满足关系式:),(),(),(),(2121yxhbyxhayxfbyxfa其中,fxy1(,)和fxy2(,)是输入图像,hxy1(,)和hxy2(,)是对应于fxy1(,)和fxy2(,)的输出图像,a和b是常系数比例因子.对这样的系统,其输出hxy(,)可以用输入fxy(,)与56其脉冲响应gxy(,)的卷积来定义:.),(),(),(),(),(ydxdyyxxgyxfyxgyxfyxh(5.5)若为离散函数,上式变为1010],[],[],[],[],[nkmlljkiglkfjigjifjih(5.6)hijApBpCpDpEpFpGpHpIp[,]123456789图5.333阶的卷积模板示意图,卷积模板原点对应于位置E,而权IBA,...,,是gkl[,]的值,其中kl,,,101.如果fxy(,)和hxy(,)表示图像,则卷积就变成了对像素点的加权计算,脉冲响应],[jig就是一个卷积模板.对图像中每一像素点],[ji,输出响应值hxy(,)是通过平移卷积模板到像素点],[ji处,计算模板与像素点],[ji邻域加权得到的,其中各加权值对应卷积模板的各对应值。图5.3是模板为33的示意图.卷积是线性运算,因为]},[],[{]},[],[{]},[],[{],[22112211jifjigajifjigajifajifajig对任何常量1a和2a都成立.换句话说,和的卷积等于卷积的和,尺度变换后的图像卷积等于卷积后作相应的尺度变换.卷积是空间不变算子,因为在整幅图像中都使用相同的权重系数.但空间可变系统则在图像的不同部分要求不同的滤波权重因子,因此这种运算无法用卷积来表示.5.2.2付立叶变换nm图像可用下列频率分量表示:ddeeFlkfjljk),(41],[2(5.7)其中,),(F是图像的付立叶变换.付立叶变换对每一个频率分量的幅值和相位进行编码,定义为jlnkmljkeelkflkfF1010],[]},[{),(F(5.8)57其中F代表付立叶变换运算符号.在),(平面原点附近的值称为付立叶变换的低频分量,而远离原点的值称为高频分量.注意,),(F是一个连续函数.图像域的卷积对应于频率域的乘积,因此,对于图像域中非常费时的大滤波器卷积,若使用快速付立叶变换(fastfouriertransform,FFT),可以大大地提高计算效率.FFT是许多图像处理应用领域里十分重要的方法.但是在机器视觉中,由于大多数算法是非线性的或空间可变的,因此不能使用付立叶变换方法.对于视觉模型为线性的、空间不变的系统,由于滤波尺度很小,使用快速付立叶变换几乎得不到什么益处.因此,在视觉预处理阶段,通常使用线性滤波器(如平滑滤波器等)来完成图像时域卷积.5.3线性滤波器图像常常被强度随机信号(也称为噪声)所污染.一些常见的噪声有椒盐(Salt&Pepper)噪声、脉冲噪声、高斯噪声等.椒盐噪声含有随机出现的黑白强度值.而脉冲噪声则只含有随机的白强度值(正脉冲噪声)或黑强度值(负脉冲噪声).与前两者不同,高斯噪声含有强度服从高斯或正态分布的噪声.高斯噪声是许多传感器噪声的很好模型,例如摄像机的电子干扰噪声.(a)(b)图5.4被高斯噪声所污染的图像.(a)原始图像,(b)高斯噪声.线性平滑滤波器去除高斯噪声的效果很好,且在大多数情况下,对其它类型的噪声也有很好的效果.线性滤波器使用连续窗函数内像素加权和来实现滤波.特别典型的是,同一模式的权重因子可以作用在每一个窗口内,也就意味着线性滤波器是空间不变的,这样就可以使用卷积模板来实现滤波.如果图像的不同部分使用不同的滤波权重因子,且仍然可以用滤波器完成加权运算,那么线性滤波器就是空间可变的.任何不是像素加权运算的滤波器都属于非线性滤波器.非线性滤波器也可以是空间不变的,也就是说,在图像的任何位置上可以进行相同的运算而不考虑图像位置或空间的变化.5.4节中所提出的中值滤波器就是空间不变的非线性滤波器.下面主要介绍两种线性滤波器,均值滤波器和高斯滤波器。5.3.1均值滤波器最简单的线性滤波器是局部均值运算,即每一个像素值用其局部邻域内所有值的均值置换:NlklkfMjih),(],[1],[(5.9)其中,M是邻域N内的像素点总数.例如,在像素点[,]ij处取33邻域,得到1111].,[91],[iikjjllkfjih(5.10)该方程与方程5.6对比,对于卷积模板中的每一点[,]ij,有gij[,]/19,那么方程5.658就退化成方程5.10所示的局部均值运算.这一结果表明,均值滤波器可以通过卷积模板的等权值卷积运算来实现(见图5.5).实际上,许多图像处理运算都可以通过卷积来实现.图5.5采用3×3邻域的均值滤波器示意图图5.6用33,77窗函数对图5.4噪声图像进行均值滤波后的结果.邻域N的大小控制着滤波程度,对应大卷积模板的大尺度邻域会加大滤波程度.作为去除大噪声的代价,大尺度滤波器也会导致图像细节的损失.不同尺度下均值滤波的结果见图5.6.在设计线性平滑滤波器时,选择滤波权值应使得滤波器只有一个峰值,称之为主瓣,并且在水平和垂直方向上是对称的.一个典型的33平滑滤波器的权值模板如下:1161811618141811618116线性平滑滤波器去除了高频成分和图像中的锐化细节,例如:会把阶跃变化平滑成渐近变化,从而牺牲了精确定位的能力.空间可变滤波器能调节权值,使得在相对比较均匀的图像区域上加大平滑量,而在尖税变化的图像区域上减小平滑量.5.3.2高斯平滑滤波高斯滤波器是一类根据高斯函数的形状来选择权值的线性平滑滤波器.高斯平滑滤波器对去除服从正态分布的噪声是很有效的.一维零均值高斯函数为:59gxex()222(5.11)其中,高斯分布参数σ决定了高斯滤波器的宽度.对图像处理来说,常用二维零均值离散高斯函数作平滑滤波器.这种函数的图形如图5.7所示,函数表达式为:gijeij[,]()2222(5.12)图5.7二维零均值高斯函数示意图高斯函数具有五个重要的性质,这些性质使得它在早期图像处理中特别有用.这些性质表明,高斯平滑滤波器无论在空间域还是在频率域都是十分有效的低通滤波器,且在实际图像处理中得到了工程人员的有效使用.高斯函数具有五个十分重要的性质,它们是:二维高斯函数具有旋转对称性,即滤波器在各个方向上的平滑程度是相同的.一般来说,一幅图像的边缘方向是事先不知道的,因此,在滤波前是无法确定一个方向上比另一方向上需要更多的平滑.旋转对称性意味着高斯平滑滤波器在后续边缘检测中不会偏向任一方向.高斯函数是单值函数.这表明,高斯滤波器用像素邻域的加权均值来代替该点的像素值,而每一邻域像素点权值是随该点与中心点的距离单调增减的.这一性质是很重要的,因为边缘是一种图像局部特征,如果平滑运算对离算子中心很远的像素点仍然有很大作用,则平滑运算会使图像失真.高斯函数的付立叶变