《数字图像处理》课件第06章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《数字图像处理》课件第06章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像处理 数字图像 处理 课件 06
- 资源描述:
-
1、第6章 图像的几何变换第第6 6章章 图像的几何变换图像的几何变换6.1 几何变换基础6.2 图像比例缩放6.3 图像平移6.4 图像镜像6.5 图像旋转6.6 图像复合变换6.7 图像透视变换6.8 应用实例几何畸变的校正第6章 图像的几何变换 6.1 几何变换基础6.1.1 概述图像的几何变换,是指原始图像按照需要产生大小、形状和位置的变化。从图像类型来分,图像的几何变换可以有二维平面图像的几何变换和三维图像的几何变换以及由三维向二维平面投影的变换等。从变换的性质分,图像的几何变换有平移、比例缩放、旋转、反射和错切等基本变换,透视变换等复合变换,以及插值运算等。第6章 图像的几何变换 数字
2、图像是把连续图像在坐标空间和性质空间离散化了的图像。例如,一幅二维数字图像就是把一幅连续的二维(2D)图像在坐标空间XOY和性质空间F都离散化了的图像,它可以用一组2D数组f(x,y)来表示,其中x和y表示2D空间XOY中一个坐标点的位置,f代表图像在点(x,y)的某种性质F的数值。如果所处理的是一幅灰度图,这时f表示灰度值。此时,f、x、y都在整数集合中取值。因此,除了插值运算外,常见的图像几何变换可以通过与之对应的矩阵线性变换来实现。第6章 图像的几何变换由于篇幅所限,本章只讨论2D图像的几何变换。对于2D图像几何变换,由于变换中心在坐标原点的恒等、比例缩放、反射、错切和旋转等各种变换,都
3、可以用22矩阵表示和实现,但是一个22变换矩阵却不能实现2D图像的平移以及绕任意点的比例缩放、反射、错切和旋转等各种变换。因此,为了能够用统一的矩阵线性变换的形式表示和实现这些常见的图像几何变换,就需要引入一种新的坐标齐次坐标。利用齐次坐标进行变换处理,才能实现上述各种2D图像的几何变换。dcbaT第6章 图像的几何变换6.1.2 齐次坐标现设点P0(x0,y0)进行平移后,移到P(x,y),其中x方向的平移量为x,y方向的平移量为y。那么,点P(x,y)的坐标为yyyxxx00如图6-1所示。这个变换用矩阵的形式可以表示为yxyxyx001001第6章 图像的几何变换图6-1 点的平移 第6
4、章 图像的几何变换而平面上点的变换矩阵中没有引入平移常量,无论a、b、c、d取什么值,都不能实现上述的平移变换。因此,需要使用23阶变换矩阵,其形式为dcbaTyxT1001第6章 图像的几何变换此矩阵的第一、二列构成单位矩阵,第三列元素为平移常量。由上述可知,对2D图像进行变换,只需将图像的点集矩阵乘以变换矩阵即可。2D图像对应的点集矩阵是2n阶的,而上式扩展后的变换矩阵是23阶的矩阵,这不符合矩阵相乘时要求前者的列数与后者的行数相等的规则,因此需要在点的坐标列矩阵x yT中引入第三个元素,增加一个附加坐标,扩展为31的列矩阵x y 1T,这样用三维空间点(x y 1)表示二维空间点(x,y
5、),即采用一种特殊的坐标,可以实现平移变换。变换结果为 0PTPyxyyxxyxyx000011001 第6章 图像的几何变换其中符合上述平移后的坐标位置。通常将23阶矩阵扩充为33阶矩阵,以拓宽功能。由此可得平移变换矩阵为yyyxxx001001001yxT第6章 图像的几何变换下面再验证一下点P(x,y)按照33的变换矩阵T平移变换的结果:0PTP11110010010000yxyyxxyxyx从上式可以看出,引入附加坐标后,扩充了矩阵的第3行,并没有使变换结果受到影响。这种用n+1维向量表示n维向量的方法称为齐次坐标表示法第6章 图像的几何变换因此,2D图像中的点坐标(x,y)通常表示成
6、齐次坐标(Hx,Hy,H),其中H表示非零的任意实数,当H1时,称(x,y,1)为点(x,y)的规范化齐次坐标。显然规范化齐次坐标的前两个数是相应二维点的坐标,没有变化,仅在原坐标中增加了H1的附加坐标。由点的齐次坐标(Hx,Hy,H)求点的规范化齐次坐标(x,y,1),可按下式进行:HHxx HHyy 第6章 图像的几何变换齐次坐标的几何意义相当于点(x,y)落在3D空间H1的平面上,如图6-2所示。如果将xOy平面内的三角形abc的各顶点表示成齐次坐标(xi,yi,1)(i=1,2,3)的形式,就变成H1平面内的三角形a1b1c1的各顶点。第6章 图像的几何变换图6-2 齐次坐标的几何意义
7、 第6章 图像的几何变换齐次坐标在2D图像几何变换中的另一个应用是:如某点S(60 000,40 000)在16位计算机上表示,由于大于32767的最大坐标值,需要进行复杂的处理操作。但如果把S的坐标形式变成(Hx,Hy,H)形式的齐次坐标,则情况就不同了。在齐次坐标系中,设H1/2,则S(60 000,40 000)的齐次坐标为(x/2,y/2,1/2),那么所要表示的点变为(30 000,20 000,1/2),此点显然在16位计算机上二进制数所能表示的范围之内。因此,采用齐次坐标,并将变换矩阵改成33阶的形式后,便可实现所有2D图像几何变换的基本变换。第6章 图像的几何变换6.1.3 二
8、维图像几何变换的矩阵利用齐次坐标及改成33阶形式的变换矩阵T,实现2D图像几何变换的基本变换的一般过程是:将2n阶的二维点集矩阵x0i y0iT2n表示成齐次坐标x0i y0i 1T3n的形式,然后乘以相应的变换矩阵即可,即 变换后的点集矩阵=变换矩阵T变换前的点集矩阵(图像上各点的新齐次坐标)(图像上各点的原齐次坐标)第6章 图像的几何变换设变换矩阵T为smlqdcpbaT则上述变换可以用公式表示为nnnHHHHyHyHyHxHxHx32121Tnnnyyyxxx32121111T=第6章 图像的几何变换图像上各点的新齐次坐标规范化后的点集矩阵为nnnyyyxxx32121111引入齐次坐标
9、后,表示2D图像几何变换的33阶矩阵的功能就完善了,我们可以用它完成2D图像的各种几何变换。下面我们讨论33阶变换矩阵中各元素在变换中的功能。几何变换的33矩阵的一般形式为smlqdcpbaT第6章 图像的几何变换33阶的矩阵T可以分成四个子矩阵。其中,这个22阶子矩阵可使图像实现变换中心在坐标原点的恒等、比例、反射(或镜像)、错切和旋转变换。l m这一行矩阵可以使图像实现平移变换。p qT这一列矩阵可以使图像实现透视变换,但当p=0,q=0时它无透视作用。s这一元素可以使图像实现全比例变换。例如,将图像进行全比例变换,即22dcba第6章 图像的几何变换s000100011100iiiiyx
10、yx将齐次坐标规范化后,x0i/s y0i/s 1T=xi yi 1T。由此可见,当s1时,图像按比例缩小;当0s1时,整个图像按比例放大;当s1时,图像大小不变。第6章 图像的几何变换6.2 图像比例缩放6.2.1 图像比例缩放变换图像比例缩放是指将给定的图像在x轴方向按比例缩放fx倍,在y轴方向按比例缩放fy倍,从而获得一幅新的图像。如果fx=fy,即在x轴方向和y轴方向缩放的比率相同,称这样的比例缩放为图像的全比例缩放。如果fxfy,图像的比例缩放会改变原始图像像素间的相对位置,产生几何畸变。设原图像中的点P(x0,y0)比例缩放后,在新图像中的对应点为P(x,y),则P(x0,y0)和
11、P(x,y)之间的对应关系如图6-3所示。第6章 图像的几何变换图6-3 比例缩放 第6章 图像的几何变换比例缩放前后两点P(x0,y0)、P(x,y)之间的关系用矩阵形式可以表示为11000000100yxffyxyx(61)公式(6-1)的逆运算为1100010001100yxffyxyx第6章 图像的几何变换即yxfyyfxx00比例缩放所产生的图像中的像素可能在原图像中找不到相应的像素点,需要进行近似处理。插值处理常用的方法有两种,一种是直接赋值为和它最相近的像素值,另一种是通过一些插值算法来计算相应的像素值。前一种方法计算简单,但会出现马赛克现象;后者处理效果要好些,但是运算量也相应
12、增加。在下面的算法中我们直接采用了前一种方法。实际上,这也是一种插值算法,称为最邻近插值(Nearest Neighbor Interpolation)或者最近邻域法。第6章 图像的几何变换下面首先讨论图像的比例缩小。最简单的比例缩小是当fx=fy=1/2 时,图像被缩到1/4大小,缩小后图像中的(0,0)像素对应于原图像中的(0,0)像素;(0,1)像素对应于原图像中的(0,2)像素;(1,0)像素对应于原图像中的(2,0)像素,依此类推。图像缩小之后,因为承载的信息量小了,所以画布可相应缩小。此时,只需在原图像基础上,每行隔一个像素取一点,每隔一行进行操作。即取原图的偶(奇)数行和偶(奇)
13、数列构成新的图像,如图6-4所示。如果图像按任意比例缩小,则需要计算选择的行和列。第6章 图像的几何变换图6-4 图像缩小到1/4 第6章 图像的几何变换如果MN大小的旧图像F(x,y)缩小为kMkN大小(k1)的新图像I(x,y),则I(x,y)=F(int(cx),int(cy)式中,c=1/k。由此公式可以构造出新图像,如图6-5所示。第6章 图像的几何变换图6-5 图像按任意比例缩小 第6章 图像的几何变换当fxfy(fx,fy0)时,图像不按比例缩小,这种操作因为在x方向和y方向的缩小比例不同,一定会带来图像的几何畸变。图像不按比例缩小的方法是:如果MN大小的旧图像F(x,y)缩小为
14、k1Mk2N大小,(k11,k20)时,图像在x方向和y方向按不同比例放大,此时,这种操作由于x方向和y方向的放大倍数不同,会产生图像的几何畸变。放大的方法是将原图像的一个像素添到新图像的一个k1k2的子块中去。为了提高几何变换后的图像质量,常常采用线性插值法。该方法的原理是:当求出的分数地址与像素点不一致时,求出周围四个像素点的距离比,根据该比率,由四个邻域的像素灰度值进行双线性插值,如图6-10所示。第6章 图像的几何变换图6-9 按最近邻域法放大5倍的图像 第6章 图像的几何变换图6-10 线性插值法示意图 第6章 图像的几何变换简化后的灰度值计算式如下:)1,1()1,()1(),1(
15、),()1()1(),(yxfpyxfpqyxfpyxfpqyxg(62)式中:g(x,y)为插值后坐标(x,y)处的灰度值;f(x,y)为插值前坐标(x,y)处的灰度值;x,y 分别为不大于x、y的整数。关于这个问题的详细算法及其实现,读者可以参考有关参考文献。第6章 图像的几何变换6.2.2 比例缩放的实现按照公式(6-1)以及最近邻域法,可以编写一个实现图像比例缩放的函数ZoomImage(),从而实现图像的比例缩放,如图6-11所示。第6章 图像的几何变换图6-11 图像的比例缩放 第6章 图像的几何变换下面给出这个函数的结构和主要算法。/*/函数名称:BOOL ZoomImage()
16、/基本功能:本函数对传入的CDibObject对象中的图像进行缩放操作。如果进行此调整之前/没有指定一个CDibObject对象指针,则必须在调整时加以指定/参数说明:float fXZoomRatio X轴方向缩放比率 float fYZoomRatio Y轴方向缩放比率/BOOL bBilinear TRUE为双线性插值,FALSE为最邻近插值/CDibObject*pDibObject,默认为NULL第6章 图像的几何变换/返回值:BOOL,成功返回TRUE,失败返回FALSE/*BOOL CGeoTrans:ZoomImage(float fXZoomRatio,float fYZoo
17、mRatio,BOOL bBilinear,CDibObject*pDibObject)/定义变量,获得原图像指针及其图像信息,计算新图/像的大小,为新图像分配内存等及用255(白色)填充新 /图像数据区,用原图像调色板填充新图像调色板等 /针对图像每行进行操作第6章 图像的几何变换for(y=0;y nNewHeight;y+)/指向新图像第y行 /注意此处宽度和高度是新图像的宽度和高度 pNewTemp=pNewBits;pNewTemp+=(nNewHeight-1-y)*nNewWidthBytes;/针对图像每列进行操作 for(x=0;x=0)&(x0=0)&(y0GetDib()
18、;:GlobalFree(m_pDibObject-GetDib();:GlobalUnlock(hNewDib);/将新图像设置为当前图像 m_pDibObject-SetDib(hNewDib);m_pDibObject-ProcessImageHeader();return TRUE;第6章 图像的几何变换6.3 图像平移6.3.1 图像平移变换图像的平移是指将一幅图像上的所有点都按照给定的偏移量在水平方向沿x轴、在垂直方向沿y轴移动,平移后的图像与原图像相同,如图6-12所示。图像的平移是图像几何变换中最简单的变换之一。第6章 图像的几何变换图6-12 图像的平移 第6章 图像的几何变
19、换设点P0(x0,y0)进行平移后,移到P(x,y),其中x方向的平移量为x,y方向的平移量为y。那么,点P(x,y)的坐标为yyyxxx00利用齐次坐标,变换前后图像上的点P0(x0,y0)和P(x,y)之间的关系可以用如下的矩阵变换表示:11001001100yxyxyx(63)第6章 图像的几何变换对变换矩阵求逆,可以得到式(6-3)的逆变换:11001001100yxyxyx即yyyxxx00第6章 图像的几何变换这样,平移后的图像上的每一点都可以在原图像中找到对应的点。例如,对于新图像中的(0,0)像素,代入上面的方程组,可以求出对应原图像中的像素(-x,-y)。如果x或y大于0,则
20、点(-x,-y)不在原图像中。对于不在原图像中的点,可以直接将它的像素值统一设置为0或者255(对于灰度图就是黑色或白色)。同样,若有像素点不在原图像中,也就说明原图像中有点被移出显示区域。如果不想丢失被移出的部分图像,可以将新生成的图像宽度增大|x|,高度增大|y|。图6-13是平移前的图像,图6-14是水平和垂直方向都平移50个像素后的图像,图6-15是平移扩大原图像后的图像。第6章 图像的几何变换图6-13 平移前的图像 第6章 图像的几何变换图6-14 平移后的图像 第6章 图像的几何变换图6-15 平移扩大后的图像 第6章 图像的几何变换6.3.2 图像平移的算法按照上述理论,可以容
21、易地用Visual C+来实现图像的平移。下面介绍灰度图像的平移。因为灰度图像每个像素位数正好是8位,即1个字节,因而在进行图像处理时可以不用考虑拼凑字节的问题。而且由于灰度图调色板的特殊性,进行图像处理时可不必考虑调色板问题,以便将重点放在算法本身。第6章 图像的几何变换由上述分析,可以得到实现图像平移的算法如下。/*/函数名称:BOOL TranslationPixel()/基本功能:本函数对传入的CDibObject对象中的图像/进行平移操作。如果进行此调整之前没有指定一个/CDibObject对象指针,则必须在调整时加以指定/参数说明:long lXOffset X轴平移量(像素数);
22、/long lYOffset Y轴平移量(像素数)CDibObject/*pDibObject,默认为NULL第6章 图像的几何变换/返回值:BOOL,成功返回TRUE,失败返回FALSE/注意:该函数用来水平移动DIB图像。函数不会改变/图像的大小,移出部分的图像将被截去,空白部分用/白色填充。该函数逐点移动图像/*BOOL CGeoTrans:TranslationPixel(long lXOffset,long lYOffset,CDibObject*pDibObject)/定义变量,获得原图像指针及其图像信息,计算新 /图像的大小,为新图像分配内存等及用255(白色)/填充新图像数据区
23、,用原图像调色板填充新图像调 /色板等由图像位数确定的移动字节数nMovedBits,/对于灰度图像有nMovedBits=1 /针对图像每行进行操作第6章 图像的几何变换 for(y=0;y nHeight;y+)pNewTemp=pNewBits;/注意由于DIB中图像第一行其实保存在最后一 /行的位置 pNewTemp+=(nHeight-1-y)*nWidthBytes;/针对图像每列进行操作 for(x=0;x=0)&(x0=0)&(y0 GetDib();return TRUE;由于平移前后的图像相同,而且图像上的像素是连续放置的,所以图像的平移也可以通过直接逐行复制图像来实现。有
24、兴趣的读者,请参阅相关参考文献。第6章 图像的几何变换 6.4 图像镜像6.4.1 图像镜像变换图像的镜像(Mirror)变换不改变图像的形状。镜像变换分为两种:一种是水平镜像,另外一种是垂直镜像。图像的水平镜像操作是将图像左半部分和右半部分以图像垂直中轴线为中心进行镜像对换;图像的垂直镜像操作是将图像上半部分和下半部分以图像水平中轴线为中心进行镜像对换,如图6-16所示。但是为了编程与实现方便,往往对水平镜像在x方向作一个平移(图像宽度),对垂直镜像在y方向作一个平移(图像高度)。第6章 图像的几何变换图6-16 图像的镜像 第6章 图像的几何变换图像的镜像变换也可以用矩阵变换表示。设点P0
25、(x0,y0)进行镜像后的对应点为P(x,y),图像高度为fHeight,宽度为fWidth,原图像中P0(x0,y0)经过水平镜像后坐标将变为(fWidthx0,y0),其矩阵表达式为110001001100yxfWidthyx第6章 图像的几何变换它的逆运算矩阵表达式为110001001100yxfWidthyx即 yyxfWidthx00第6章 图像的几何变换同样,P0(x0,y0)经过垂直镜像后坐标将变为(x0,fHeighty0),其矩阵表达式为110010001100yxfHeightyx第6章 图像的几何变换其逆运算矩阵表达式为110010001100yxfHeightyx即 y
展开阅读全文