•基本运算分类•点运算•代数运算•几何运算•直方图三数字图像处理中基本运算3.1、数字图像处理基本运算的分类1.图像处理基本功能按图像处理的输出形式:1)单幅图像→单幅图像,如图3.1.1(a).2)多幅图像→单幅图像,如图3.1.1(b).3)单(或多)幅图像→数字或符号等。如图3.1.1(c).3.1.1图像处理的基本功能2基本运算分类点运算:图像的点处理运算(PointOperation)将输入图像映射为输出图像,输出图像每个像素点的灰度值仅由对应输入像素点的值决定。它常用于改变图像的灰度范围及分布,是图像数字化及图像显示的重要工具。点处理运算因其作用性质有时也被称为对比度增强、对比度拉伸或灰度变换等。设输入图像各点的像素值为A(x,y),输出图像各点的像素值为B(x,y),则点处理运算可表示为:邻域运算:输出图像中每个象素的灰度值由输入图像的一个邻域内的几个象素的灰度值共同决定。邻域处理是根据输入图像某像素F(x,y)的一个小邻域N(F(x,y))中的像素值,按某种函数关系来计算出输出像素G(x,y)点的像素值的方法。其数学关系可表示为:3.2、点运算作用:改变图像数据占据的灰度范围。对比度增强、灰度变换几种典型的点运算:1、图像的亮度调整图3.2.1原始图像亮度增加亮度降低cyxfyxg),(),(2、对比度调整----图像拉伸(1)灰度的线性变换:它是将图像中所有点的灰度按线性变换函数进行变换。设原图像f(x,y)灰度范围:[a,b]变换后图像g(x,y)灰度范围:[c,d]则线性变换可表示为cayxfabcdyxg]),([),(讨论:1)d-c=b-a,图像对比度不变.c=a,没有变化,图3.2.2(a)c不等于a,灰度调整,图3.2.1.2)d-cb-a,图像灰度拉伸,对比度增强,图3.2.2(b);3)d-cb-c,对比度减小,图3.2.2(c);4)反色,,图3.2.2(d).(a)(b)(c)(d)图3.2.2线性点运算实例dayxfabdcyxg]),([),(灰度线性变换函数f(r)是一个一维线性函数:其中,a为线性变换的斜率,b为线性变换函数在y轴的截距,如图4.1.1所示。图4.1.1灰度线性变换在灰度的线性变换中:当a>1时,输出图像的对比度将增大;当a<1时,输出图像的对比度将减小;当a=1且b≠0时,所进行的操作仅使所有像素的灰度值上移或下移,其效果是使整个图像更暗或更亮;如果a<0,则暗区域将变亮,亮区域将变暗,这时完成图像的求补运算。特殊情况下:当a=1,且b=0时,输出图像和输入图像相同;当a=-1,且b=255时,输出图像的灰度值将反转(负片)。问题:运算后的灰度值超出灰度范围,怎么办?原始图像灰度线性变换处理示例取a=0.4,b=0对比度减小(2)分段灰度的线性变换目的:突出感兴趣的目标或灰度区间,相对抑制那些不感兴趣的灰度区域dbyxfbMdMcayxfadcdyxfacyxgfg]),([]),([),(),(fMyxfbbyxfaayxf),(),(),(0分段线性变换Mfabdf(x,y)g(x,y)MgcO对灰度区间[0,a]和[b,Mf]加以压缩,[a,b]进行扩展。通过细心调整折线拐点的位置及控制分段直线的斜率,可对任一灰度区间进行扩展或压缩。,照片中的划痕等。灰度线性变换处理示例比较图中两图像的灰度拉伸前后的直方图可以发规原图像0~50的灰度区间被拉伸到0~150;50~200的灰度区间被压缩到100~150;200~255的灰度区间被拉伸到150~255。线性变换斜率为2斜率为2.5分段线性变换(50,100;180,220)(50,30;200,220)(3)非线性变换srOsrOsrOsrOsrOsrO常见的几种非线性变换函数3.3、代数运算1.定义:两幅图像进行点对点的加、减、乘、除计算。j)h(i,j)f(i,j)g(i,j)h(i,j)f(i,j)g(i,j)h(i,j)f(i,j)g(i,j)h(i,j)f(i,j)g(i,*g(i,j)255g(i,j)=255g(i,j)0g(i,j)=0org(i,j)=|g(i,j)|2、应用1)运用减法运算,去除图像的附加噪声去除不需要的叠加性图案检测同一场景两幅图象之间的变化计算物体边界的梯度运用减法运算,可检测同一场景中两幅图像的变化,如运动目标的跟踪及故障检测2)加法运算可以降低加性随机噪声通过对多幅图像求平均实现3)实现遥感图像的比值处理a)扩大不同地物的光谱b)消除阴影的影响4)乘法运算,可以用来遮掉图像的一部分。如将一幅图像与二值图像相乘、掩模操作加法运算:去除“叠加性”噪音生成图象叠加效果对于两个图象f(x,y)和h(x,y)的均值有:g(x,y)=1/2f(x,y)+1/2h(x,y)会得到二次暴光的效果。推广这个公式为:g(x,y)=αf(x,y)+βh(x,y)其中α+β=1我们可以得到各种图象合成的效果,也可以用于两张图片的衔接•乘法主要应用举例–图象的局部显示:用二值蒙板图象与原图象做乘法3.4、几何运算水平镜像垂直镜像图像转置45度旋转60度旋转90度旋转图像缩放(0.5,0.5)图像平移(100,100)1)概述图像的几何变换,是指使用户获得或设计的原始图像,按照需要产生大小、形状和位置的变化。基本变换:平移、比例缩放、旋转、反射和错切此外还有:透视变换等复合变换,以及插值运算等。实现:通过与之对应的矩阵线性变换(除了插值运算外)1.几何变换基础Oyxy0yxx0P0(x0,y0)P(x,y)点的平移2)齐次坐标yyyxxx00用矩阵的形式表示:yxyxyx001001),(),(000yxpyxp则无偏移量dcbaT变换矩阵yxT1001扩展后的变换矩阵为2×3阶,这不符合矩阵相乘规则。扩展点的坐标)1,,(),(yxyx则yxyyxxyxyxPTP0000011001齐次坐标表示法:用n+1维向量表示n维向量的方法。zxyOabca1b1c1H=1齐次坐标的几何意义齐次坐标的几何意义:相当于点(x,y)落在3D空间H=1的平面上,如果将XOY平面内的三角形abc的各顶点表示成齐次坐标(xi,yi,1)(i=1,2,3)的形式,就变成H=1平面内的三角形a1b1c1的各顶点。•将2×n阶的二维点集矩阵表示成齐次坐标的形式•乘以相应的变换矩阵,即变换后的点集矩阵=变换矩阵T×(图像上各点的新齐次坐标)(图像上各点的原齐次坐标)niiniiyxyx30020013)实现2D图像几何变换的基本变换的一般过程2图像平移x=2,y=1图像平移yyyxxx00利用齐次坐标,变换后:),(),(000yxpyxp则11001001100yxyxyx(100,100)原图像中有点被移出显示区域,部分信息丢失!如果不想丢失被移出的部分图像,可以将新生成的图像宽度扩大|Δx|,高度扩大|Δy|!?3图像缩放将给定的图像在x轴方向按比例缩放fx倍,在y轴方向按比例缩放fy倍,从而获得一幅新的图像。fx=fy:全比例缩放;fx≠fy:产生几何畸变放大后缩放前xy(x,y)(x0,y0)O),(),(000yxpyxp则10000000100yxfyfxyx1)最简单的比例缩小:当fx=fy=1/2时,图像被缩到原图1/4。简单抽取如下图亦可采取其它方法,如取邻近个象素点的平均值。2)简单的图像放大当fx=fy=2时,图像被按全比例放大2倍,放大后图像中的(0,0)像素对应于原图中的(0,0)像素;(0,1)像素对应于原图中的(0,0.5)像素,该像素不存在!怎么办?插值!最简单的插值方法:对应于原图中的(0,0.5)像素(0,1),将其近似为(0,0)也可以近似(0,1);(1,0)像素近似于(0,0)或(1,0)像素;(2,0)像素对应于原图中的(1,0)像素,依此类推。结果:马赛克!思考一个问题:如果放大倍数太大,按照前面的方法处理会出现马赛克效应,有没有办法解决?或者想办法至少使之有所改善?在输入图像f(x,y)中,灰度值仅在整数位置(x,y)处被定义。然而,在几何变换中,输出图像g(x,y)的灰度值一般由处在非整数坐标上的f(x,y)的值来决定。所以,如果把几何变换看成是一个从f到g的映射,则f中的一个像素会映射到g中几个像素之间的位置;反过来也是如此。这就需要利用灰度级插值算法以确定几何变换后的像素的灰度值。输出像素通常被映射到输入图像中的非整数位置,即位于四个输入像素之间来决定与该位置相对应的灰度值,所以必须进行插值运算以确定输出像素的灰度值。常用的插值算法有最近邻插值法(Nearestneighbor)和双线性插值法(Bilinear)两种。1.最简单的插值方法是所谓零阶插值(Zero-order)或称为最近邻插值,即令输出像素的灰度值等于离它所映射到的位置最近的输入像素的灰度值。计算十分简单,在许多情况下,其结果也可令人接受。然而,当图像中包含像素之间灰度级有变化的细微结构时,最近邻插值法会在图像中产生人工的痕迹。如图所示为一个用最近邻插位法放大图像的例子,从中可看出结果图像带有锯齿形的边。2双线性插值(Bilinear)双线性插值法是一阶插值(First-oder),和零阶插值法相比可产生更令人满意的效果。只是程序稍复杂一些,运行时间稍长一些。假设输出图像的宽度为W,高度为H,输入图像的宽度为w高度为h,要将输入图像的尺度拉伸或压缩变换至输出图像的尺度。按照线形插值的方法,将输入图像的宽度方向分为W等份,高度方向分为H等份,那么输出图像中任意一点(x,y)的灰度值就应该由输入图像中四点(a,b)、(a+1,b)、(a,b+1)和(a+1,b+1)的灰度值来确定.双线性插值(一阶插值)水平镜像垂直镜像4图像镜像),(),(000yxpyxp水平镜像:其中,fHeight为图像高度,fWidth为宽度为fWidth110001001100yxfWidthyx110010001100yxfHeightyx垂直镜像:5图像旋转rrxy(x,y)(x0,y0)O图像旋转θ角cossinsincoscossin)sin(sincossinsincoscos)cos(sincos000000yxrrryyxrrrxryrx),(),(000yxpyxp其中,为图像逆时针旋转的角度11000cossin0sincos100yxyx注意:(1)图像旋转之前,为了避免信息的丢失,一定要有坐标平移;有下两种方法:xyyxOO注:一般图像的旋转是以图像的中心为原点,将图像上的所有像素都旋转一个相同的角度。图像的旋转变换是图像的位置变换,但旋转后,图像的大小一般会改变。和图像平移一样,在图像旋转变换中既可以把转出显示区域的图像截去,也可以扩大图像范围以显示所有的图像。旋转θ后的图像(扩大图像、转出部分被截)12431243图像的旋转例题30yxyyxx866.05.0'5.0866.0'634.03*5.086