资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,多媒体通信,北京科技大学,杨 扬,第,6,章 图像的几何变换,几何变换基础,图像比例缩放,图像平移,图像镜像,图像旋转,灰度插值,1,、几何变换基础,图像的几何变换,是指使用户获得或设计的原始图像,按照需要产生大小、形状和位置的变化。,从图像类型来分,图像的几何变换有:,二维平面图像的几何变换;,三维图像的几何变换;,三维向二维平面投影变换等。,从图像的性质分,图像的几何变换有:,平移、比例缩放、旋转、反射和错切等基本变换;,透视变换和复合变换;,插值运算等。,1,、几何变换基础,图像的几何变换是通过改变图像中物体(像素)之间的空间关系的过程。图像的几何变换可以看成将各像素在图像内移动的过程。其定义为:,其中,,f(x,y,),表示输入图像,,g(x,y,),表示输出图像,,a(x,y,),和,b(x,y,),表示空间变换。,几何变换改变的是图像中各物体之间的空间关系。其效果正如在一块橡皮板上画图,拉伸该橡皮板,并在不同的点固定该橡皮板。,1,、几何变换基础,一个几何变换需要两个独立的算法:,1.,需要一个算法来定义空间变换本身,用它描述每个像素如何从其初始位置“移动”到终止位置,即每个像素的“运动”,如平移、缩放、旋转等。,2.,还需要一个用于灰度插值的算法,这是因为,在一般情况下,输入图像的位置坐标,(x,,,y),为整数,而输出图像的位置坐标为非整数,反过来也是如此。,1,、几何变换基础,几何变换常用于摄象机的几何校正过程,这对于利用图像进行几何测量的工作是十分重要的。,如:仿射变换(,Affine Transformation,),它属于射影几何变换,多用于图像配准(,Image Registration,)作为比较或匹配的预处理过程;,图像卷绕(,Image Warping,),即用控制点控制变换过程,通过插值运算,将一幅图像逐渐变化到另一幅图像的图像变形(,Morphing,)过程是其典型的应用,多见于影视特技及广告的制作。,1.1,齐次坐标,设点,P,0,(x,0,y,0,),进行平移后,移到,P(x,y,),其中,x,方向的平移量为,x,y,方向的平移量为,y,。那么,点,P(x,y,),的坐标为:,这个变换用矩阵的形式可以表示为:,1.1,齐次坐标,点的平移,1.1,齐次坐标,而平面上点的变换矩阵中没有引入平移常量,无论,a,、,b,、,c,、,d,取什么值,都不能实现上述的平移变换。因此,需要使用,23,阶变换矩阵,取其形式为:,1.1,齐次坐标,为了运算方便,通常将,23,阶矩阵扩充为,33,阶矩阵,以拓宽功能。,P(x,y,),按照,3X3,的变换矩阵,T,平移结果为:,1.1,齐次坐标,这种用,n,1,维向量表示,n,维向量的方法称为齐次坐标表示法。,因此,,2D,图像中的点坐标,(,x,y,),通常表示成齐次坐标(,Hx,Hy,H,),其中,H,表示非零的任意实数,当,H,1,时,则,(,x,y,1),就称为点,(,x,y,),的规范化齐次坐标。,由点的齐次坐标(,Hx,Hy,H,)求点的规范化齐次坐标,(,x,y,1),,可按如下公式进行:,1.2,二维图像几何变换的矩阵,利用齐次坐标及改成,33,阶形式的变换矩阵,实现,2D,图像几何变换的基本变换的一般过程是:将,2,n,阶的二维点集矩阵,表示成齐次坐标的形式,然,后乘以相应的变换矩阵即可完成。,1.2,二维图像几何变换的矩阵,引入齐次坐标后,表示,2D,图像几何变换的,33,矩阵的功能就完善了,可以用它完成,2D,图像的各种几何变换。下面讨论,33,阶变换矩阵中各元素在变换中的功能。几何变换的,33,矩阵的一般形式为:,1.2,二维图像几何变换的矩阵,其中,这一子矩阵可使图像实现恒等,比例、反射(或镜像)、错切和旋转变换。,l m,这一行矩阵可以使图像实现透视变换,但当,l,=0,,,m,=0,时它无透视作用。,p,q,T,这一列矩阵可以使图像实现平移变换,,s,这一元素可以使图像实现全比例变换。,2,、图像比例缩放,比例缩放前后两点,P,0,(,x,0,y,0,),、,P,(,x,y,),之间的关系用矩阵形式可以表示为:,其中,f,x,f,y,1,为放大,,f,x,f,y,1,为缩小。,2,、图像比例缩放,2,、图像比例缩放,比例缩放所产生的图像中的像素可能在原图像中找不到相应的像素点,这样就必须进行插值处理。,插值处理常用的方法有两种,一种是直接赋值为和它最相近的像素值;另一种是通过一些插值算法来计算相应的像素值。,前一种方法计算简单,但会出现马赛克现象;后者处理效果要好些,但是运算量也相应增加。,在下面的算法中直接采用了前一种做法。实际上,这也是一种插值算法,称为最邻近插值法(,Nearest Neighbor Interpolation,)。,2,、图像比例缩放,最简单的比例缩小是当,f,x,=,f,y,=1,2,时,图像被缩到一半大小,此时缩小后图像中的,(0,,,0),像素对应于原图像中的,(0,,,0),像素;,(0,,,1),像素对应于原图像中的,(0,,,2),像素;,(1,,,0),像素对应于原图像中的,(2,,,0),像素,依此类推。,图像缩小之后,因为承载的信息量小了,所以画布可相应缩小。此时,只需在原图像基础上,每行隔一个像素取一点,每隔一行进行操作,即取原图的偶(奇)数行和偶(奇)数列构成新的图像,如下图所示。如果图像按任意比例缩小,则需要计算选择的行和列。,2,、图像比例缩放,图像缩小一半,2,、图像比例缩放,如果,M,N,大小的原图像,F,(,x,,,y,),缩小为,kM,kN,大小(,k,1,)的新图像,I,(,x,,,y,),时,则,I,(,x,y,)=,F,(int(,c,x,),int(,c,y,),其中,,c,=1,k,。由此公式可以构造出新图像,如下图所示。,2,、图像比例缩放,当,f,x,f,y,(,f,x,f,y,0),时,图像不按比例缩小,这种操作因为在,x,方向和,y,方向的缩小比例不同,一定会带来图像的几何畸变。图像不按比例缩小的方法是:如果,M,N,大小的旧图,F,(,x,,,y,),缩小为,k,1,M,k,2,N,(,k,1,1,,,k,2,1,)大小的新图像,I,(,x,,,y,),时,则,I,(,x,y,)=,F,(int(,c,1,x,),int(,c,2,y,),2,、图像比例缩放,在图像的放大操作中,需要对尺寸放大后所多出来的空格填入适当的像素值,这是信息的估计问题,所以较图像的缩小要难一些。,当,fx,fy,2,时,图像被按全比例放大,2,倍,放大后图像中的,(0,,,0),像素对应于原图中的,(0,,,0),像素;,(0,,,1),像素对应于原图中的,(0,,,0.5),像素,该像素不存在,可以近似为,(0,,,0),也可以近似,(0,,,1),;,(0,,,2),像素对应于原图像中的,(0,,,1),像素;,(1,,,0),像素对应于原图中的,(0.5,,,0),,它的像素值近似于,(0,,,0),或,(1,,,0),像素;,(2,,,0),像素对应于原图中的,(1,,,0),像素,依此类推。其实这是将原图像每行中的像素重复取值一遍,然后每行重复一次。,2,、图像比例缩放,放大前的图像,按最近邻域法放大两倍 按插值法放大两倍,2,、图像比例缩放,一般地,按比例将原图像放大,k,倍时,如果按照最近邻域法则需要将一个像素值添在新图像的,k,k,的子块中。显然,如果放大倍数太大,按照这种方法处理会出现马赛克效应。,当,fx,fy,(,fx,fy,0),时,图像在,x,方向和,y,方向不按比例放大,此时,这种操作由于,x,方向和,y,方向的放大倍数不同,一定带来图像的几何畸变。,为了提高几何变换后的图像质量,常采用线性插值法。该方法的原理是,当求出的分数地址与像素点不一致时,求出周围四个像素点的距离比,根据该比率,由四个邻域的像素灰度值进行线性插值,如下图所示。,2,、图像比例缩放,线性插值法示意图,2,、图像比例缩放,简化后的灰度值计算式如下,:,g,(,x,,,y,),=,(,1-,q,),(,1-,p,),g,(,x,,,y,),+,p,g,(,x,+1,,,y,),+,q,(,1-,p,),g,(,x,,,y,+1,),+,p,g,(,x,+1,,,y,+1,),式中:,g,(,x,,,y,),为坐标(,x,,,y,),处的灰度值,,x,、,y,分别为不大于,x,,,y,的整数。关于这,个问题的详细算法及其实现可以参考有关的参考文献。,3,、图像平移,设点,P,0,(,x,0,y,0,),进行平移后,移到,P,(,x,y,),,其中,x,方向的平移量为,x,,,y,方向的平移量为,y,。那么,点,P,(,x,y,),的坐标为:,利用齐次坐标,变换前后图像上的点,P,0,(,x,0,y,0,),和,P,(,x,y,),之间的关系可以用如下的矩阵变换表示为:,3,、图像平移,图像平移,4,、图像镜像,图像的镜像变换也可以用矩阵变换表示。设点,P,0,(,x,0,y,0,),进行镜像后的对应点为,P,(,x,y,),,图像高度为,f,Height,,宽度为,f,Width,,原图像中,P,0,(,x,0,y,0,),经过水平镜像后坐标将变为(,f,Width,-,x,0,,,y,0,),垂直镜像后坐标将变为,(,x,0,,,f,Height,-y,0,),矩阵表达式为:,水平镜像,垂直镜像,4,、图像镜像,图像的镜像,5,、图像旋转,设点,P,0,(,x,0,y,0,),旋转,角后的对应点为,P(x,y),,如下图所示:,5,、图像旋转,写成矩阵形式,如下:,5,、图像旋转,旋转前后点,P,0(,x,0,y,0),、,P,(,x,y,),的坐标分别是:,矩阵形式:,5,、图像旋转,进行图像旋转时需要注意如下两点:,(,1,)图像旋转之前,为了避免信息的丢失,一定要有坐标平移;,(,2,)图像旋转之后,会出现许多空洞点。对这些空洞点必须进行填充处理,否则画面效果不好,一般也称这种操作为插值处理。最简单的方法是行插值方法或列插值方法。,6,、灰度插值,向前映射法,当把输入图像的灰度一个一个像素地转移到输出图像中时,如果一个输入像素被映射到四个输出像素之间的位置,则其灰度值就按插值算法在四个输出像素之间进行分配。我们称之为像素移交,(Pixel carry-over),或称为向前映射法。,6,、灰度插值,向后映射法,另一种更有效地达到目的的方法是像素填充,(Pixel filling),或称为向后映射算法:在这里输出像素一次一个地映射回到输入图像中,以便确定其灰度级。如果,个输出像素被映射到四个输出像素之间。则其灰度值由灰度级插值决定。向后空间变换是向前变换的逆变换。,6,、灰度插值,由于许多输入像素可能映射到输出图像的边界之外,故向前映射算法有些浪费。,而且,每个输出像素的灰度值可能要由许多输入像素的灰度值来决定,因而要涉及多次计算。如果空间变换中包括缩小处理,则会有四个以上的输入像素来决定一输出像素的灰度值。如果含有放大处理,则一些输出像素可能被漏掉,(,如果没有输入像素被映射到它们附近位置的话,),。,而向后映射算法是逐像素、逐行地产出输出图像。每个像素的灰度级由最多四个像素参与的插值所唯一确定。,当然,这种算法需按空间变换所定义的方式随机访问输入图像,因而可能有些复杂。虽然如此,像素填充法对一般的应用更为切实可行。,6,、灰度插值,1,、最近邻插值,(Nearest Neighborhood Interpolation.NNI),问题:有失真(放大时只重复复制,缩小时只是扔掉一些象素),6,、灰度插值,2,、线性插值(,Linear Interpolation,),已知,x,1,x,2,处灰度,g,1,g,2,,求,x,3,处灰度,g,3,。,6,、灰度插值,3,、双线
展开阅读全文