第2章数字图像处理的数学基础及相关运算2.1线性系统2.2调用信号2.3卷积和滤波2.4关联函数2.5运算类型2.6二维系统2.7点运算2.8代数运算2.9特定区域处理2.1线性系统2.1.1线性系统分析2.1.2移不变系统分析2.1.1线性系统分析任何一个实际系统,当给定一个输入信号u(t),则产生相应的输出信号y(t),系统的输入信号与输出信号之间实质上是一种数学运算,可以采用如图2-1所示的模型表示。图2-1应用系统模型2.1.2移不变系统分析2.2调用信号2.2.1调谐信号分析2.2.2对调谐信号的响应分析2.2.3系统传递函数分析2.2.1调谐信号分析2.2.2对调谐信号的响应分析2.2.3系统传递函数分析1.传递函数的形式对于线性移不变系统,式(2-15)描述了输入信号与输出信号之间的关系,其中H()称为系统的传递函数。传递函数H()包含了所表示系统的全部特征。2.线性移不变系统对余弦信号的输出A()为系统的增益因子,代表系统对输入信号的缩放比例。为输出信号的相位,其作用是将调谐输入信号的时间坐标加以平移。综上所述,线性移不变系统具有以下性质:(1)调谐输入产生同频率的调谐输出;(2)系统的传递函数是一个仅依赖于频率的复函数,它包含了系统的全部特征信息;(3)传递函数对调谐输入信号仅产生幅值的缩放和相位的平移。2.3卷积和滤波2.3.1连续卷积分析2.3.2离散卷积分析2.3.3滤波分析2.3.1连续卷积分析2.3.2离散卷积分析2.3.3滤波分析卷积运算在信号处理和图像处理学科中通常称为滤波。一个线性移不变系统输入和输出之间的关系,既可以采用传递函数进行描述,也可以采用卷积的形式进行描述。也就是说,线性移不变系统的输出可通过输入信号与系统的冲击响应函数h(t)的卷积得到,即()()()d()()d()*()ytuhthututht∞∞2.4关联函数2.4.1关联函数的定义分析2.4.2关联与卷积的关系分析2.4.1关联函数的定义分析1.自关联函数2.互关联函数2.4.2关联与卷积的关系分析2.5运算类型具有代表性的图像处理典型算法从功能上包括以下几种:(1)单幅图像→单幅图像(2)多幅图像→单幅图像(3)单幅图像或多幅图像→数值/符号等2.6二维系统2.6.1二维线性系统分析2.6.2二维位置不变线性系统分析2.6.3二维系统的梯度算子分析2.6.1二维线性系统分析2.6.2二维位置不变线性系统分析2.6.3二维系统的梯度算子分析1.连续系统梯度算子由于无论是x方向还是y方向,离散系统的坐标值最小增量为1,因而以相邻点之差近似表示梯度分量。2.离散系统梯度算子2.7点运算2.7.1线性点运算分析2.7.2非线性点运算分析2.7.3直方图修正分析对于一幅输入图像,若输出图像的每个像素点的灰度值由输入像素来决定,则这样的图像变换称为图像的点运算(pointoperation),即该点像素灰度的输出值仅是本身灰度的单一函数。点运算的结果由灰度变换函数(gray-scaletransformation,GST)确定,即:B(x,y)=ƒ[A(x,y)]式中,A(x,y)是运算前的图像像素值,B(x,y)是点运算后的图像值,ƒ是对A(x,y)的一种映射函数,即GST函数。2.7.1线性点运算分析当灰度变换GST函数为线性时,即B=ƒ(A)=αA+β,此时的变换称为线性点运算。显然,当α=1,β=0时,原图像不发生变化;当α=1,β≠0时,图像灰度值增加或降低;当α1时,输出图像对比度增大;当0α1时,输出图像对比度减小;当α0时,图像亮区域变暗,暗区域变亮,即图像求补。当图像的曝光不足或过度时,图像灰度值就会限制在一个较小的范围内,这时在显示器上看到的将是一个模糊的图像。利用线性点运算对图像进行处理,就能增强图像的灰度层次,改善图像的视觉效果。图2-2cameraman图像经过不同的线性点运算后的结果2.7.2非线性点运算分析2.7.3直方图修正分析1.点运算对直方图的影响下面通过一个示例来说明点运算对直方图的影响。【例2-3】cameraman图像f(x)=1.25x+45的直方图变化情况。直方图均衡化又称为直方图平坦化。直方图均衡化的基本思想是将原始图像的不均衡的直方图变化为均匀分布的形式。即将输入图像转换为在每一灰度级上都有相同的像素点数(即输出的直方图是平坦的,其分布为均匀分布)。直方图均衡化的结果扩展了像元取值的动态范围,从而达到增强图像整体对比度的效果。直方图均衡化参考以下示例。2.直方图均衡化2.8代数运算2.8.1代数运算的意义2.8.2加法运算2.8.3减法运算2.8.4乘法运算2.8.5除法运算2.8.1代数运算的意义在数字图像处理技术中,代数运算具有非常广泛的应用和重要的意义。图像相加也可用于将一幅图像的内容叠加到另一幅图像上,从而实现二次曝光(double-exposure)。图像相减运算可用于消除一幅图像中所不需要的加性图案,加性图案可能是缓慢变化的背景阴影、周期性噪声,或在图像上每一像素点均已知的附加污染等。减法运算还可用于检测同一场景的两幅图像之间的变化。在数字图像处理中,虽然乘、除运算应用得相对少一些,但它们也具有很重要的应用。例如,在获取数字化图像过程中,图像数字化设备对一幅图像各点的敏感程度不可能完全相同,乘、除运算可用于纠正这方面的不利影响。此外,乘法运算在获取图像的局部图案时发挥作用,用一幅掩膜图像(maskimage)乘以某一图像可遮住该图像中的某些部分,使其仅保留图像中感兴趣的部分,而除法运算还可以产生对颜色和多光谱图像分析十分重要的比率图像。2.8.2加法运算加法运算通常用于平均值降噪等多种场合。图像相加一般用于对同一场景的多幅图像求平均,以便有效地降低加性噪声。若有一静止场景的图像被加性随机噪声污染,且已获得由幅该静止场景图像组成的图像集合,则图像可表示为(,)(,)(,)iiDxySxyNxyS(x,y)为静止场景的理想图像,Ni(x,y)表示由于胶片的颗粒或数字化系统中的电子噪声所引起的噪声图像。集合中的每幅图像被不同的噪声图像所污染。设P(x,y)表示功率信噪比,对于图像中的任意像素点,则P(x,y)可定义为22(,)(,)[(,)]SxyPxyENxy同时在MATLAB中提供函数imadd实现图像的加法运算,其语法格式为:z=imadd(A,B)其中A为图像,若B是一幅图像,则z为两个图像的求和,此时要求B的大小必须和A相等;若B是一个标量(双精度),则z表示对图像A整体加上某个值,即图像的亮度调整。2.8.3减法运算图像相减常用于检测变化及运动的物体,图像相减运算又称为图像差分运算。差分方法可以分为可控制环境下的简单差分方法和基于背景模型的差分方法。在MATLAB中,图像的减法用imsubtract和imabsdiff函数可以完成,其语法格式为:z=imsubtract(a,b);%差值结果小于0的赋值为0;a、b大小相等。z=imabsdiff(a,b)%差值结果取绝对值1.消除背景影响所谓差影法,实际上就是图像的减法运算(又称减影技术),是指将同一景物在不同时间拍摄的图像或同一景物在不同波段的图像相减。差值图像提供了图像间的差异信息,能用于指导动态监测、运动目标的检测和跟踪、图像背景的消除及目标识别等。2.差影法3.求梯度幅度2.8.4乘法运算乘法运算可用来遮住图像的某些部分,其典型运用是用于获得掩膜图像。对于需要保留下来的区域,掩膜图像的值置为1,而在需要被抑制掉的区域,掩膜图像的值置为0,原图像乘上掩膜图像,可抹去图像的某些部分,即使该部分为0。然后可利用一个互补的掩膜来抹去第二幅图像中的另一些区域,而这些区域在第一幅图像中被完整地保留了下来。一般情况下,利用计算机图像处理软件生成掩膜图像的步骤如下:(1)新建一个与原始图像大小相同的图层,图层文件一般保存为二值图像文件;(2)用户在新建图层上人工勾绘出所需要保留的区域,区域的确定也可以由其他二值图像文件导入或由计算机图形文件(矢量)经转换生成;(3)确定局部区域后,将整个图层保存为二值图像,选定区域内的像素点值为1,非选定区域像素点值为0;(4)将原始图像与(3)形成的二值图像进行乘法运算,即可将原始图像选定区域外像素点的灰度值置0,而选定区域内像素的灰度值保持不变,得到与原始图像分离的局部图像,即掩膜图像。2.8.5除法运算图像除法运算可以用来校正由于照明或传感器的非均匀性造成的图像灰度阴影,除法运算还被用于产生比率图像,这对于多光谱图像的分析是十分有用的。利用不同时间段图像的除法得到的比率图像常常可以用来对图像进行变化检测。2.9特定区域处理2.9.1指定感兴趣区域2.9.2特定区域滤波2.9.3特定区域填充2.9.1指定感兴趣区域MATLAB中对特定区域的处理是通过二值掩模来实现的。MATLAB图像处理工具箱提供了3个函数用于生成二值掩模,从而选择特定区域,下面分别介绍。roipoly函数用于选择图像中的多边形区域。roipoly函数返回二值图像BW,选中区域的像素值为1,其余部分的值为0。这个二值图像可以作为掩模,通过与原图的运算选择目标或背景。其语法格式如下:BW=roipoly(I,c,r)BW=roipoly(I)BW=roipoly(x,y,I,xi,yi)[BW,xi,yi]=roipoly(...)[x,y,BW,xi,yi]=roipoly(...)(1)roipolyMATLAB图像处理工具箱提供了roicolor函数可以对RGB图像和灰度图像实现按灰度或亮度选择区域,其语法格式为:BW=roicolor(A,low,high)BW=roicolor(A,v)其中BW=roicolor(A,low,high)表示按指定的灰度范围分割图像,返回二值掩模BW,[lowhigh]为所要选择区域的灰度范围。如果low大于high,则返回为空矩阵;BW=roicolor(A,v)是按向量v中指定的灰度值为选择区域。(2)roicolor该函数可以转化指定的多边形区域为二值掩模。其语法格式为:BW=poly2mask(x,y,m,n)x和y表示两个向量,指定一个多边形区域,BW的大小为m×n,在BW中指定区域内的像素为1,指定区域外的像素为0。如果x和y指定的区域不封闭,则poly2mask自动封闭这个多边形。(3)poly2mask2.9.2特定区域滤波MATLAB图像处理工具箱中提供了一个区域滤波函数roifilt2,其语法格式为:J=roifilt2(h,I,BW)J=roifilt2(h,I,BW,fun)J=roifilt2(h,I,BW,fun,P1,P2,...)其中J=roifilt2(h,I,BW)为使用滤波器h对图像I中用二值掩模BW选中的区域进行滤波;J=roifilt2(h,I,BW,fun)和J=roifilt2(h,I,BW,fun,P1,P2,...)对图像I中用二值掩模BW选中的区域作函数运算fun,其中fun是描述函数运算的字符串,参数P1、P2、…返回图像J在选中区域的像素为图像I经fun运算的结果,其余部分的像素值为I的原始值。2.9.3特定区域填充MATLAB图像处理工具箱中提供了函数roifill用于对特定区域的填充,其语法格式为:J=roifill(I,c,r)J=roifill(I)J=roifill(I,BW)[J,BW]=roifill(...)J=roifill(x,y,I,xi,yi)[x,y,J,BW,xi,yi]=roifill(...)其中,J=roifill(I,c,r)填充由向量c、r指定的多边形,c和r分别为多边形各顶点的x、y坐标。它是通过求解边界的拉普拉斯方程,利用多边形边界点的灰度平滑的插值得到多边形内部的点。通常可以利用对指定区域的填充来“擦”掉图像中的小块区域。J=roifill(I)表示由用户交互选取填充的区域。选择多边形的角点后,按Enter键表示