1、第五章 空间域图像增强5.1 图像增强基础5.1.1 为什么要进行图像增强 图像增强是指根据特定的需要突出一幅图像中的某些信息,同时削弱或去除某些不需要的信息的处理方法。应该明确的是增强处理并不能增强原图像的信息,其结果只能增强对某种信息的辨别能力,而同时这种处理有可能损失一些其他信息。5.1.2 图像增强的分类 图像增强技术基本上可以分为两大类:一类是空间域增强,另一类是频率域增强。主要的图像增强技术直方图修正灰度变换增强图像平滑化 图像锐化 图像空间域增强是基于图像中每一个邻域的像素进行灰度变换运算,某一点变换后的灰度值由该邻域内的所有点的灰度值共同决定。空间域变换可以使用下式描述:5.2
2、 空间域滤波5.2.1 空间滤波和邻域处理对于图像中的一点(x,y),重复下面的操作:(1)对预先定义的以(x,y)为中心的邻域内的像素进行运算。(2)将(1)中的运算结果作为(x,y)点的新响应。上述过程就称为邻域处理或空间域滤波。如果邻域中的像素运算为线性运算,则称为线性空间域滤波,否则称为非线性空间域滤波。可以将滤波操作形式化的表示为:IBCHADGFEibchadgfe 下面以一个简单的示例来说明滤波操作过程的实现,颜色填充的像素点为待处理点。模板下的图像灰度(滤波处理前)3X3模板(滤波器)经过滤波操作后,颜色填充的像素点的值为A*a+B*b+C*c+D*d+E*e+F*f+G*g+
3、H*h+I*i。5.2.2 边界处理 执行滤波操作时,模板的某些元素很可能位于图像之外,这时就需要对边缘附近的那些元素单独执行滤波操作,以避免引用到本不属于图像的无意义的值(在Matlab中这将引起系统的警告,而在VC中很可能会由于非法访问内存而产生运行错误)。以下3种策略可以用来解决边界问题:(1)收缩处理范围处理时忽略位于图像边界附近会引起问题的那些点。(2)使用常数填充图像根据模板形状为图像虚拟出边界,虚拟边界像素值为固定的常数。(3)使用复制像素的方法填充图像和(2)基本相同,只是用来填充虚拟边界像素值的不是固定常数,而是复制图像本身的边界。5.2.3 滤波操作的Matlab实现 Ma
4、tlab中与滤波相关的函数主要有imfilter和fspecial。Imfilter完成滤波操作,而fspecial可以为我们创建一些预定义的2维滤波器,直接供imfilter使用。1.滤波函数imfilter函数的原型如下:g=imfilter(f,w,option1,option2,)f是要进行滤波操作的图像。w是滤波操作所使用的模板,为一个二维数组。option1,option2,是可选项,具体内容如表5.1所示。g为滤波后的输出图像。参数说明:表 5.1示例:2.Fspecial创建预定义的二维滤波器其调用格式如下:h=fspecial(type,parameters)参数说明:参数t
5、ype用于指定滤波器的类型,type的一些合法值如表 5.2所示。参数parameters为可选项,是和所选定的滤波器类型相关的配置参数,如尺寸和标准差等。返回值h 为特定的滤波器。表 5.2合法取值功能描述average平均模板disk圆形邻域的平均模板gaussian高斯模板laplacian拉普拉斯模板log高斯-拉普拉斯模板prewittPrewitt水平边缘检测算子sobelSobel水平边缘检测算子5.3 图像平滑5.3.1 平均模板及其实现 图像平滑是一种可以减少和抑制图像噪声的实用数字图像处理技术。在空间域中一般可采用邻域平均达到平滑的目的。所谓平均模板就是在模板覆盖下的所有像
6、素点在决定中心点像素值得过程中权重相同,也就是指模板中每个元素的值是一样的。平均模板的一般表达形式为:2(21)(21)111(21)11kkwk Matlab示例:原图像3X3均值滤波5X5均值滤波9X9均值滤波15X15均值滤波35X35均值滤波5.3.2 高斯平滑及其实现1.理论基础 平均平滑对邻域内的像素一视同仁。为了减少模糊,得到更自然的平滑效果,适当的加大模板中心位置的权重,随着远离中心点权重迅速减小,这样的模板就是高斯模板。任意大小的高斯模板都可以通过建立一个 的矩阵M得到,其(i,j)位置的元素值可如下确定:222(1)(1)221(,)2i kj kM i je (21)(2
7、1)kk 当标准差 取不同的值时,二维高斯函数的形状会有很大的变化,因而在实际应用中选择合适的 值非常重要。Matlab中 的默认值为0.5,实际应用中对3X3的模板取为0.8左右,对于更大的模板可以适当增大。2.Matlab实现原图像3X3 0.83X3 0.53X3 1.85.4 中值滤波 中值滤波本质上是一种统计排序滤波。对于原图像中某点(i,j),中值滤波以该点为中心的邻域内的所有像素的统计排序中值作为该点的响应。例如:采用3X3中值滤波器,某点及其8个邻域的像素值为:12,18,18,11,23,22,13,25,118,排序结果为:11,12,13,18,18,22,23,25,1
8、18。则排在中间(第五位)的18即为该点滤波后的像素值。5.4.1 性能比较 中值滤波对于某些类型的随机噪声具有非常理想的降噪能力。对于线性平滑滤波而言,噪声总会影响像素值的计算,在中值滤波中噪声点常常直接被忽略;中值滤波在降噪的同时引起的模糊效应较低。中值滤波的一种典型应用是消除椒盐噪声。I为原图像。可选参数type指定了噪声类型,常用噪声类型如表5.3所示。1.噪声模型Matlab中为图片加噪声的语句是:J=imnoise(I,type,parameter);参数说明:表5.3合法取值功能描述gaussian高斯噪声:如果一个噪声的幅度分布服从高斯分布,则称之为高斯噪声。如果它的功率谱密度
9、又是均匀分布,则称为高斯白噪声。salt&pepper椒盐噪声因其表现形式而得名。椒盐噪声是由图像传感器、传输信道、解码处理等产生的黑白相间的暗亮点噪声。椒盐噪声往往由图像切割引起。2.中值滤波的Matlab实现 Matlab提供了medfilt2函数实现中值滤波。原型为:I2=medfilt2(I1,m,n);参数说明:I1是原图矩阵m 和 n 是中值滤波的模板大小,默认为3X3。示例5.5 图像锐化5.5.1 理论基础 图像锐化的目的是使模糊的图像变得更加清晰。其应用广泛,包括医学成像、工业检测和军事系统的制导等。图像锐化主要用于增强图像的灰度跳变部分,这与图像平滑对灰度跳变的抑制相反。线
10、性平滑都是基于对图像邻域的加权求和或积分运算,而锐化则通过其逆运算或有限差分来实现。与平滑处理一样,在锐化处理中如何区分噪声和边缘也是处理过程中面临的一个重要问题,在平滑处理中平滑的对象是噪声而不涉及边缘,在锐化中锐化的对象是边缘而不涉及噪声。5.5.2 基于一阶微分的图像增强 梯度算子 对于连续2维函数f(x,y),其在点(x,y)处的梯度是下列二维列向量:xyfGxffGy(,)(,)limff xyf x yx(,)(,)limff x yf x yy其中:梯度方向是函数变化率最大的方向,梯度的幅值为变化率大小的度量,其值为:22(,)fff x yxy对于2维离散函数f(x,y),可以
11、用有限差分作为梯度幅值的近似:22(,)(1,)(,)(,1)(,)f i jf ijf i jf i jf i j为了便于计算和理解,上式可近似为绝对值形式:(,)(1,)(,)(,1)(,)f i jf ijf i jf i jf i j 上面的梯度形式很少被采用。在实际使用中,经常被采用的是Robert交叉梯度和Sobel梯度。f(i-1,j-1)f(i-1,j)f(i-1,j+1)f(i,j-1)f(i,j)f(i,j+1)f(i+1,j-1)f(i+1,j)f(i+1,j+1)这种近似梯度对应的模板为:10101100和1.Robert交叉梯度Robert交叉梯度算子的表达式为:(,
12、)(1,1)(,)(1,)(,1)f i jf ijf i jf ijf i jf(i-1,j-1)f(i-1,j)f(i-1,j+1)f(i,j-1)f(i,j)f(i,j+1)f(i+1,j-1)f(i+1,j)f(i+1,j+1)Robert交叉梯度对应的模板为:11001w20110w其中,w1对接近正45度边缘有较强响应;w2对接近负45度边缘有较强响应。Robert交叉梯度Matlab示例:2.Sobel梯度Sobel梯度算子的表达式为:(1,1)2(1,)(1,1)(,)(1,1)2(1,)(1,1)(1,1)2(,1)(1,1)(1,1)2(,1)(1,1)f ijf ijf
13、ijf i jf ijf ijf ijf ijf i jf ijf ijf i jf ijf(i-1,j-1)f(i-1,j)f(i-1,j+1)f(i,j-1)f(i,j)f(i,j+1)f(i+1,j-1)f(i+1,j)f(i+1,j+1)Robert交叉梯度对应的模板为:1121000121w2101202101w Sobel梯度Matlab示例:由图可以看出,w1对水平边缘有较大响应;w2对竖直边缘有较大响应。5.5.2 基于二阶微分的图像增强 拉普拉斯算子1.理论基础二维函数的二阶微分(拉普拉斯算子)定义为:离散的二维图像的二阶偏微分的近似:两式相加得到用于图像锐化的拉普拉斯算子:
14、拉普拉斯算子对应的滤波模板如下:1010141010w w1这种模板对于90的旋转是各向同性的。所谓对某一角度各向同性是指把图像先旋转该角度再滤波与先对图像滤波再旋转该角度的结果相同。这说明拉普拉斯算子对于接近水平和接近竖直方向的边缘都有很好的增强,从而避免像梯度算子一样进行两次滤波。2111181111w同样也可以得到对45旋转各向同性的模板w2:与高斯模板相似,根据到中心点的距离给模板中的点赋予不同的权重,还可以得到模板w3:31414204141w2.拉普拉斯算子Matlab实现5.5.4 基于一阶与二阶导数的锐化算子比较 一阶微分产生的边缘宽。一阶微分对灰度阶跃反应强烈。二阶微分对细节
15、反应强烈如细线、孤立点。二阶微分对灰度阶梯变化产生双响应。二阶微分对于点的响应比线强,而对于阶梯的响应最弱。在大多数应用中,对图像增强来说,二阶微分比一阶微分好一些,因为形成增强细节的能力好一些。5.5.5 高提升滤波5.5.6 高斯-拉普拉斯变换(LoG)锐化在增强边缘和细节的同时往往也增强了噪声。基于二阶微分对细节(如细线和孤立点)响应更强烈,且各向同性,所以经常使用。但是它对噪声的响应也更强。为了取得更好的锐化效果同时降低噪声,可以先对图像进行平滑滤波,再进行锐化增强边缘和细节。将高斯平滑和拉普拉斯锐化结合起来,得到了高斯-拉普拉斯算子:2222224()rrh re 其中 ,为标准差。222rxy高斯-拉普拉斯算子对图像的处理效果由模板大小和 共同决定。Matlab示例: