- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章数字图像处理中的基本运算1NEW
利用上面的转换公式(2.3-12)~(2.3-14),就可以比较方便地编写出实现图像旋转的VC++函数。首先应计算出公式中需要的几个参数:a,b,c,d和旋转后新图像的高、宽度。现在已知图像的原始宽度为lWidth,高度为lHeight,以图像中心为坐标系原点,则原始图像四个角的坐标分别为 按照旋转公式(2.3-11)~(2.3-14),在旋转后的新图像中,这四个点坐标为 则新图像的宽度lNewWidth和高度lNewHeight为 lNewWidth=max(|fDstX4-fDstY1|, |fDstX3-fDstY2|) lNewHeight=max(|fDstX4-fDstY1|, |fDstX3-fDstY2| ) 如果令 (2.3-15) 由已知及假设 由公式(2.3-13)得 (2.3-16) 公式(2.3-16)、(2.3-17)便是图像绕任意点(a,b)旋转的变换公式,由此便可以编写出实现该变换的VC++程序。事实上,只要先按上述公式计算出旋转后新图像的高度和宽度以及常数f1和f2,并按照公式(2.3-17)计算出变换后图像上的点(i0, j0): // 计算该像素在源DIB中的坐标 i0 =-((float) j) * f sina + ((float) i) * f cosa + f2; j0 = ((float) j) * f cosa + ((float) i) * f sina + f1; 2.3.7 透 视 变 换 2.3.7.1 透视变换 把三维物体或对象转变为二维图形表示的过程称为投影变换。根据视点(投影中心)与投影平面之间距离的不同,投影可分为平行投影和透视投影,透视投影即透视变换。平行投影的视点与投影平面之间的距离为无穷大, 而对透视投影(变换),该距离是有限的。这个距离决定着透视投影的特性——透视缩小效应, 即三维物体或对象透视投影的大小与形体到视点的距离成反比。例如,等长的两直线段,都平行于投影面,但离投影中心近的线段,其透视投影大,而离投影中心远的线段,透视投影小。这种效应所产生的视觉效果与照相机系统和人的视觉系统十分类似。与平行投影相比,透视投影的深度感更强,看上去更真实, 但透视投影不能真实地反映物体的精确尺寸和形状。 对于透视投影,一束平行于投影面的平行线的投影可保持平行, 而不平行于投影面的平行线的投影会聚集到一个点,这个点称为灭点(Vanishing Point)。灭点可以看作是无限远处的一点在投影面上的投影。透视投影的灭点可以有无限多个, 不同方向的平行线在投影面上就能形成不同的灭点,坐标轴方向的平行线在投影面上形成的灭点又称作主灭点。因为有x,y和z三个坐标轴,所以主灭点最多有3个。透视投影是按主灭点的个数来分类的,即按投影面与坐标轴的夹角来分类的,可分为一点透视、二点透视和三点透视, 如图2.3-33 所示。 图2.3-33 透视变换 (a)一点透视; (b) 二点透视; (c) 三点透视 下面讨论一点透视。一点透视只有一个主灭点,即投影面与一个坐标轴正交,与另外两个坐标轴平行,如图2.3-33(a)所示。进行一点透视投影变换,要很好地考虑图面布局,以避免三维形体或对象的平面域积聚成直线或直线积聚成点而影响直观性。具体地说,就是要考虑下列几点: ①三维形体或对象与画面 (投影面)的相对位置; ②视距, 即视点与画面的距离;③视点的高度。由此,假设视点在坐标原点, z坐标轴方向与观察方向重合一致, 三维形体或对象上某一点为P(x, y, z),一点透视变换后在投影面(观察平面)UO′V上的对应点为P′(x′, y′, z′), 投影面与z轴垂直,且与视点的距离为d, z轴过投影面窗口的中心,窗口是边长为2S的正方形,如图2.3-34所示。根据相似三角形对应边成比例的关系,有: (2.3-18) 利用齐次坐标,与二维几何变换类似,将该过程写成变换矩阵形式为 (2.3-19) 图2.3-34 一点透视变换 一般地,视点不在原点,投影平面是任意平面的情况, 一点透视变换的矩阵也可以用一个4×4的矩阵表示。当根据公式(2.3-19)求出它的逆变换后,可以用VC++编写一个实现图像透视的程序, 实现图像的透视。 2.3.7.2 其他变换 如前所述,齐次坐标为确定各种基本变换和复合变换公式提供了一个简单的方法。然而,在许多图像处理与分析应用中, 所需的几何变换都相当复杂,甚至有些无法用简便的数学式来表达。此外,所需几何变换经常要从对实际图像的测量中获得, 因
文档评论(0)