- 1、本文档共126页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 第6章 SWT界面编程 《Eclipse从入门到精通》教学课件.ppt
- 第6章 不确定性推理 人工智能原理及其应 电子教案.ppt
- 第6章 交换机的原理与配置 四级网络工程师PPT 课件.ppt
- 第6章 人力资源管理(修订)企业管理大纲及课件.ppt
- 第6单元 不等式 2011年高考理数一轮复习课件(大纲人教版).ppt
- 第6章 水波理论 船流课件 ( Chapter 6. Water Wave Theory).ppt
- 第6章 光的吸收、散射和色散 光学基础 课件 (第四版,姚启钧).ppt
- 第6章 使用图层与蒙版 Illustrator平面设计简明教程 教学课件.ppt
- 第6章 光线的光路计算及像差理论 工程光学课件.ppt
- 第6章 交流变换电路 工学硕士电力电子技术课件.ppt
最近下载
- 第七节宪法解释.ppt VIP
- 医院装饰装修施工方案(中建,103页).docx VIP
- 教科版科学三年级上册第三单元《天气》大单元教学设计.pdf VIP
- 二 《烛之武退秦师》(教案)-【中职专用】高一语文(高教版2023基础模块下册).docx
- 老年人的心理特点和常见问题复习课程知识讲稿.ppt
- 中建装饰装修施工方案.docx VIP
- 九年级上册化学知识点默写(含答案)九上化学知识点.pdf VIP
- 省社科规划项目鉴定结项审批书填写范文.doc
- 高中法制教育校本课程.pdf VIP
- 2023中国农业银行运行中心境内清算分中心(深圳)业务管理岗招聘笔试历年典型考题及考点剖析附带答案详解.docx
文档评论(0)