第6章 图像的几何变换 数字图像处理 教学课件.ppt

第6章 图像的几何变换 数字图像处理 教学课件.ppt

  1. 1、本文档共126页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 图像的几何变换 数字图像处理 教学课件

6.5 图像旋转 6.5.1 图像旋转变换 本节介绍一种相对复杂的几何变换——图像的旋转。一般图像的旋转是以图像的中心为原点,将图像上的所有像素都旋转一个相同的角度。图像的旋转变换是图像的位置变换,但旋转后,图像的大小一般会改变。和图像平移一样, 在图像旋转变换中既可以把转出显示区域的图像截去, 也可以扩大图像范围以显示所有的图像。如图6-20、 图6-21所示。 图6-20 旋转前的图像 图6-21 旋转θ后的图像(扩大图像、 转出部分被截) 同样,图像的旋转变换也可以用矩阵变换表示。设点P0(x0, y0)旋转θ角后的对应点为P(x, y), 如图6-22所示。那么, 旋转前后点P0(x0, y0)、 P(x, y)的坐标分别是: 图6-22 图像旋转θ角 写成矩阵表达式为 (6-5) 其逆运算为 利用公式(6-5)可以确定旋转后图像上的像素。例如,当θ=30°时,公式(6-5)为 而且, 此时 xmin=0.866-0.5×3=-0.634; xmin=0.866×3-0.5=2.098 ymin=0.866+0.5=1.366; ymax=0.866×3+0.5×3=4.098 图6-23 图像旋转θ角 利用公式(6-5)进行图像旋转时需要注意如下两点:  (1) 图像旋转之前, 为了避免信息的丢失, 一定要有坐标平移,具体的做法有如图6-24所示的两种方法。 图6-24 图像旋转之前进行的平移 (2) 图像旋转之后,会出现许多空洞点, 如图6-23所示。对这些空洞点必须进行填充处理,否则画面效果不好,一般也称这种操作为插值处理。最简单的方法是行插值方法或列插值方法:  ① 找出当前行的最小和最大的非白点的坐标,记作: (i, k1)、 (i, k2)。 ② 在(k1, k2)范围内进行插值,插值的方法是:空点的像素值等于前一点的像素值。 ③ 同样的操作重复到所有行。经过如上的插值处理之后, 图像效果就变得自然。如图6-25所示。列插值方法与此类同, 请读者自己给出。 图6-25 图6-23中的图像处理后的效果 6.5.2 图像旋转的实现 按照上述理论,也可以用VC++编程实现图像的旋转。为了将重点放在算法本身,下面介绍灰度图像的旋转算法。由上面的公式(6-6)以及产生空穴时的双线性插值方法,可以编制一个实现图像旋转的函数RotateDIB2()。下面给出这个函数的框架和主要算法。 //***************************************** //函数名称: BOOL Rotate()  //基本功能: 本函数对传入的CDibObject对象中的图像进行旋转操作 //参数说明: int iRotateAngle 旋转的角度(0~360度) // BOOL bBilinear TRUE为双线性插值, FALSE为最邻近插值 // CDibObject *pDibObject 默认为NULL //返回值: BOOL 成功返回TRUE, 失败返回FALSE //***************************************** BOOL CGeoTrans:: Rotate(int nRotateAngle, BOOL bBilinear, CDibObject *pDibObject) { //获得图像宽度和高度: nOldWidth、 nOldHeight //定义旋转角度(弧度)及其正弦和余弦值: fRotateAngle、 fSina、 fCosa //定义源图四个角的坐标、 旋转后四个角的坐标(以图像中心为坐标系原点) //计算旋转角度的正弦和余弦值 //计算源图的四个角的坐标(以图像中心为坐标系原点) //计算新图四个角的坐标(以图像中心为坐标系原点) fDstX1 = fCosa * fSrcX1 + fSina * fSrcY1; fDstY1 = -fSina * fSrcX1 + fCosa * fSrcY1; fDstX2 = fCosa * fSrcX2 + fSina * fSrcY2; fDstY2 = -fSina * fSrcX2 + fCosa * fSrcY2; fDstX3 = fCosa * fSrcX3 + fSina * fSrcY3; fDstY3 = -fSina * fSrcX3 + f

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档