
数字图像处理(MATLAB版)-课件Chapter4_2.pdf
63页数字图像处理2022 年 11 月目录第四章图像增强14.2图像空间域增强.14.2.1图像增强基础.14.2.2空间域滤波.44.2.3图像平滑.174.2.4自适应平滑.274.2.5中值滤波.334.2.6图像锐化.384.2.7高提升滤波.57ii第四章图像增强4.2图像空间域增强图像增强技术基本上可分成两大类,即空间域增强和频率域增强.本节主要介绍图像空间域增强技术,下一节介绍图像频率域增强技术.4.2.1图像增强基础图像增强是指根据特定的需要突出一幅图像中的某些信息,或者削弱和去除某些不需要的信息,其主要目的是使处理后的图像对某种特定的应用来说,比原始的图像更适用.因此,这类处理是为了某种应用目的而去改善图像质量的,可使图像更适合于人的观察或机器的识别系统.1第四章图像增强回目录4.2图像空间域增强需要知道的是,图像增强并不能增强原始图像的信息,只能增强对某种信息的辨别能力,而与此同时可能会损失一些其他的信息.正因为如此,人们很难找到一个评价图像增强效果优劣的客观标准,也就没有特别通用的模式化图像增强方法,总是要使用者根据具体期望的处理效果做出取舍.图像增强是数字图像处理相对简单却极具艺术性的领域之一,其目的是消除噪声,显现那些被模糊了的细节或突出图像中用户感兴趣的特征.一个简单的例子是增强图像的对比度,使其看起来更加一目了然.值得注意的是,图像增强是数字图像处理中一个非常主观的领域,它以怎样构成好的增强效果这样的主观偏好为基础,也正是这一点为其赋予了艺术性.这与图像复原技术刚好相反,图像复原也是改进图像外貌的一个处理领域,但它是客观的.当然,空间域增强和频率域增强不是两种截然不同的图像增强技术,实际上它们是在不同的领域做同样的事情,可以说是殊途同归.只不过有些增强(滤波)更适合在空间域完成,而有些则更适合在频率域完成.2 第四章图像增强回目录4.2图像空间域增强图像空间域增强技术主要包括直方图修正、灰度变换增强、图像平滑化及图像锐化等.在增强过程中可以采用单一处理方法,但更多实际情况是需要采用几种方法联合处理,才能达到预期的增强效果.不要指望某个单一的图像处理方法能够解决全部问题.其实,我们在第 3 章中已经初步接触到了图像增强技术.第 3 章通过灰度变换改善图像外观的方法以及直观图修正技术(即直方图均衡化和直方图规定化)都是图像增强的有效手段.这些方法的共同点是变换直接针对像素灰度值,与该像素所处的邻域无关,因此也称为点运算.而空间域增强则基于图像中每一个邻域内的像素进行灰度变换,某个点变换之后的灰度值由该点邻域内的所有点的灰度值共同决定.因此,空间域增强也称为邻域运算或邻域滤波.空间域变换可使用下列公式描述:(,)=(,),(,).(4.28)3 第四章图像增强回目录4.2图像空间域增强4.2.2空间域滤波滤波本来是信号处理中的一个术语,是指将信号中特定波段频率滤除.在数字信号处理中,通常通过傅里叶变换及其逆变换来实现滤波操作.由于空间域增强本质上与傅里叶变换下频率域的滤波是等效的,故而也称之为滤波.空间域滤波主要直接基于邻域(空间域)对图像中的像素执行计算,本节使用空间域滤波这一术语,以区别于下一节的频率域滤波.1.空间域滤波和邻域处理若对一幅图像中的每个像素点(,)重复下面的两步操作:(1)对预先定义的以(,)为中心的邻域内的像素进行运算,(2)将(1)中运算的结果作为点(,)的新的响应,那么这一过程就称为空间域滤波或邻域处理.一幅数字图像可以看成一个二元函数(,),而 平面表明了空间位置信息,称为空间域.基于 空间域的滤波操作叫作空间域滤波.如果对于邻域中的像素计算为线性运算,则称为线性空间域滤波,否则称为非线性空间域滤波.4 第四章图像增强回目录4.2图像空间域增强图 4.11 直观地展示了用一个 3 3 的模板(又称为滤波器、掩模、核或者窗口)进行空间域滤波的过程,模板是,其中心是(0,0).需要注意的是,在滤波器子图中,(,)的值是系数值,而不是像素值.图 4.11:空间域滤波示意图 5 第四章图像增强回目录4.2图像空间域增强滤波过程就是在图像(,)中逐点地移动模板,使模板中心和点(,)重合.在每一点(,)处,滤波器在该点的响应是根据模板的具体内容并通过预先定义的关系来计算的.一般来说,模板中的非 0 元素重合的像素参与了决定点(,)像素值的操作.性空间滤波中,模板的系数则给出了一种加权模式,即(,)处的响应由模板系数与模板下面区域的相应 的像素值的乘积之和给出.例如,对于图 4.11 而言,此刻对于模板的响应(,)为:(,)=(1,1)(1,1)+(1,0)(1,)+(0,0)(,)+(1,0)(+1,)+(1,1)(+1,+1).更一般的情况为,对于一个大小为 的模板,其中=2+1,=2+1,均为正整数.也就是说,模板的长与宽都是奇数,偶数尺寸的模板因为不具有对称性而不被使用.此外,由于 1 1 尺寸的模板退化为点运算,因此最小尺寸的模板应该是 3 3 模板.可以将滤波操作形式化地 6 第四章图像增强回目录4.2图像空间域增强表示为:(,)=(,)(+,+).对于大小为 的图像(,),对 =0,1,1 和 =0,1,1 依次应用公式,从而完成对于原图像 所有像素的处理,得到新图像.2.空间域滤波的边界处理在进行空间域滤波的过程中,当模板移动到图像的边缘时,就会产生模板的某些元素很可能会位于图像之外的情况.这时,在边缘附近执行滤波操作就需要所谓的边界处理,以避免引用本不属于图像的无意义的值.以下是空间域滤波时边界处理的三种策略或方法.(1)收缩处理范围.边界处理时忽略位于图像 边界附近会引起问题的那些点.例如,对于 3 3 模板,处理时忽略图像 四周一圈 1 个像素宽的边界,即只处理=1,2,2 和 =1,2,2 范围内的点 7 第四章图像增强回目录4.2图像空间域增强(在 MATLAB 中应为 =2,3,1 和 =2,3,1),从而确保滤波过程中模板始终不会超出图像 的边界.(2)使用常数填充图像.根据模板的形状为图像 虚拟出边界,虚拟边界像素值为指定的常数,得到虚拟图像,以保证模板在移动过程中不会超出 的边界.例如,对于 5 5 模板,处理时在图像 四周增加 2个像素宽的虚拟边界并将其像素值置为常数.(3)使用复制像素的方法填充图像.与(2)基本相同,不同的是用来填充虚拟边界像素值的不是固定的常数,而是复制图像 本身边界的像素值.例如,对于 7 7 模板,处理时在图像 四周增加 3 个像素宽的虚拟边界并将其像素值置为真实边界相应的灰度值.3.相关运算与卷积运算相关运算是滤波器模板移过图像并计算每个相应位置元素值乘积之和,卷积的机理与其相似,但滤波时首先要将模板旋转 180.(1)相关运算的计算步骤 8 第四章图像增强回目录4.2图像空间域增强 移动相关模板的中心元素,使它与输入图像待处理的像素点(,)重合.将模板的元素作为权重,乘以图像重合区域的相应像素值,然后对其和进行输出.相关运算的计算公式如下:(,)=(,)(+,+).(4.29)(2)卷积运算的计算步骤 卷积模板绕自己的中心点顺时针旋转 180.移动卷积模板的中心,使它与输入图像待处理的像素点(,)重合.将旋转后模板的元素作为权重,乘以图像重合区域的相应像素值,然后对其求和.9 第四章图像增强回目录4.2图像空间域增强卷积运算的计算公式如下:(,)=(,)(+,+).(4.30)在卷积运算中,超出边界时要补充像素,一般是添加 0 或者添加原始边界的像素值.可以发现,卷积与相关的主要区别在于计算卷积的时候,卷积模板要先旋转 180.值得注意的是,卷积与相关尽管差别很细微,但却有本质上的不同:卷积时模板是相对其中心点做镜像后再对 位于模板下的子图像做加权和的.或者说,在做加权和之前,模板先要以其中心点为原点旋转 180.如果忽略了这一细微差别,将导致完全错误的结果.只有当模板本身关于中心点对称时,相关和卷积的结果才会相同.10 第四章图像增强回目录4.2图像空间域增强此外,注意,式(4.30)等价于:(,)=(,)(,).(4.31)4.空间域滤波的 MATLAB 实现MATLAB 中与滤波有关的函数主要有imfilter 和fspecial.函数imfilter完成滤波操作,而函数 fspecial 可以为用户创建一些预定义的二维滤波器,直接供函数 imfilter 使用.(1)滤波函数 imfilter 的调用方式如下:g=imfilter(f,w,option1,option2,);其中,f 是要进行滤波的图像;w 为滤波操作所使用的模板,是一个二维数组(矩阵);g 为滤波后的输出图像;而可选参数 option1,option2,包括以下内容.边界选项,主要有下列 4 种取值:11 第四章图像增强回目录4.2图像空间域增强(a)x,表示用固定常数 x 填充虚拟边界,默认值为 0.(b)symmetric,填充虚拟边界通过镜像反射其边界来扩展.(c)replicate,填充虚拟边界通过复制外边界的值来扩展.(d)circular,认为原图像模式具有周期性,从而周期性地填充虚拟边界的内容.注意,如果采用第一种方式(固定值)填充虚拟边界,图像会在边缘附近产生梯度,采用后面三种方式填充可让边缘显得平滑.尺寸选项,主要有下列两种取值:(a)same,表示输出图像 g 与输入图像 f 的大小相同,该值为默认值.(b)full,表示输出图像 g 的尺寸是填充虚拟边界后的尺寸,因而大于输入图像 f 的尺寸.模式选项,主要有下列两种取值:(a)corr,表示滤波过程是相关,该值为默认值.(b)conv,表示滤波过程是卷积.12 第四章图像增强回目录4.2图像空间域增强例4.2.读入灰度图像 lena.bmp,用模板=191 1 11 1 11 1 1对灰度图像进行相关滤波,采用镜像反射的边界填充方式.程序代码如下(ex408.m).F=imread(lena.bmp);%读入图像subplot(121),imshow(F);%显示原图像xlabel(a)滤波前的图像);w=1 1 1;1 1 1;1 1 1/9;%滤波模板G=imfilter(F,w,symmetric);subplot(122),imshow(G);%滤波后的图像xlabel(b)经滤波后的图像);13 第四章图像增强回目录4.2图像空间域增强运行结果如图 4.12 所示.图 4.12:相关滤波前后对比(2)可创建预定义二维滤波器的 fspecial 函数的调用方式如下:w=fspecial(type,parameters);在上述调用方式中,参数 type 指定了滤波器的类型,其中一些类型的 14 第四章图像增强回目录4.2图像空间域增强滤波器将在后面章节介绍.type 的一些合法值如下.average,平均模板.disk,圆形邻域的平均模板.gaussian,高斯模板.log,高斯-拉普拉斯模板.laplacian,拉普拉斯模板.prewitt,Prewitt 水平边缘检测算子.sobel,Sobel 水平边缘检测算子.可选输入参数 parameters 是与所选定的滤波器类型 type 相关的配置参数,如尺寸和标准差等.如果不提供,则函数使用该类型的默认参数配置.返回值 w 为特定的滤波器.下面结合以下几种代表性的情况具体说明.w=fspecial(average,wsize);返回一个大小为 wsize 的平均模板 w.参数 wsize 可以是一个含有两个分量的向量,指明 w 的行和列的数目;也可以仅为一个正整数,此时对 15 第四章图像增强回目录4.2图像空间域增强应于模板为方阵的情况.wsize 的默认值为 3,3.w=fspecial(disk,radius);返回一个半径为radius的圆形平均模板.w是一个(2radius+1)(2radius+1)的方阵.radius 的默认值为 5.w=fspecial(gaussian,wsize,。
