您好,欢迎访问三七文档
燕山大学课程设计说明书题目:图像的几何变换的设计及实现学院(系):年级专业:学号:学生姓名:指导教师:教师职称:燕山大学课程设计(论文)任务书院(系):电气工程学院基层教学单位:自动化仪表系学号学生姓名专业(班级)08仪表1班设计题目图像的几何变换的设计及实现设计技术参数理解图像几何变换的原理。实现图像的平移、缩放,和旋转、倒置,镜像等几何变换。并能实现图像围绕任一点旋转。设计要求几何变换包括图像的平移、缩放,和旋转、倒置,镜像等,是数字图像识别处理的预处理,总结并实现图像的几何变换,最好做成函数形式,通过函数调用实现相应变换。设计中应具有自己的设计思想、设计体会。工作量5天(6月20日到6月25日)工作计划6月20日:查找资料,学习Matlab的使用6月21日、22日:按照设计要求编写程序6月23日、24日:调试运行程序6月25日:完成答辩参考资料1、数字图像处理学电子工业出版社贾永红20032、数字图像处理(Matlab版)电子工业出版社冈萨雷斯20063、其他数字图像处理和matlab编程方面的书籍及相关学习资料指导教师签字基层教学单位主任签字说明:此表一式四份,学生、指导教师、基层教学单位、系部各一份。年月日燕山大学课程设计评审意见表指导教师评语:工作态度认真较认真不认真理论分析正确完善较为合理一般较差方法设计完善合理一般较差成绩:指导教师:2011年6月25日答辩小组评语:原理清晰基本掌握了解不清楚设计结论正确基本正确不正确成绩:评阅人:2011年6月25日课程设计总成绩:答辩小组成员签字:赵彦涛、程淑红、林洪斌2011年6月25日燕山大学课程设计说明书目录第一章摘要……………………………………………………………………1第二章基本原理………………………………………………………………22.1MATLAB的介绍…………………………………………………22.2图像平移的基本理论……………………………………………22.3图像放缩的基本理论……………………………………………22.4图像旋转的基本理论……………………………………………42.5图像镜像的基本理论……………………………………………7第三章程序设计……………………………………………………………83.1实现图像的平移………………………………………………83.2实现图像的放缩………………………………………………93.3实现图像的旋转………………………………………………113.4实现图像的镜像………………………………………………12第四章学习心得……………………………………………………………15参考文献………………………………………………………………………16燕山大学课程设计说明书第一章摘要数字图像处理(DigitalImageProcessing)是通过计算机对图像进行系列操作,从而达到某种预期目的的技术。数字图像处理离不开计算机,因此又称为计算机图像处理。图像几何变换是计算机图像处理领域中的一个重要组成部分,也是值得深讨的一个重要课题。在图像几何变换中主要包括图像的放缩、图像的旋转、图像的移动、图像的镜像、图像的块操作等内容,几何变换不改变图像的像素值,只改变像素所在的几何位置。从广义上说,图像是自然界景物的客观反映,是人类认识世界和人类本身的重要源泉。图像对我们并不陌生。我们生活在一个信息时代,科学研究和统计表明,人类从外界获得的信息约有75%来自视觉系统,也就是从图像中获得的。所以对数字图像的处理便显得尤为重要了。我们在处理图像时往往会遇到要对图像进行几何变换的一些问题。图像几何变换是我们学习和讨论的一个重要课题。在图像几何变换中主要包括图像的缩放、旋转、移动、减取等内容。其中使用最频繁的是图像的缩放和旋转,不论照片、图画、书报还是医学X光和卫星遥感图像都会用到这两项技术。本文主要深讨了图像的几何变换(主要包括图像的平移、缩放、旋转、镜像等)理论,并在此基础上用MATLAB实现的过程。MATLAB语法结构简单,并且具有极强的数值计算、图形文字处理、数据分析、图形绘制及图像处理等功能,在本文中我用MATLAB实现了图像的平移、放缩、旋转和镜像。关键字:图像处理;几何变换;MATLAB;函数调用燕山大学课程设计说明书第二章基本原理2.1MATLAB的介绍MATLAB是美国Mathworks公司开发的新一代科学计算软件:MATLAB是英文MATtrixLABoratory(矩阵实验室)的缩写;MATLAB是一个专门为科学计算而设计的可视化计算器。利用这个计算器中的简单命令,能快速完成其他高级语言只有通过复杂方案才能实现的数值计算和图形显示。MATLAB是一种既可交互使用又能解释执行的计算机编程语言。所谓交互使用,是指用户输入一条语句后立即就能得到该语句的计算结果,而无需像C语言那样首先编写源程序,然后对之进行编译,连接,才能最终形成可执行文件。MATLAB语言可以用直观的数学表达式来描述问题,从而避开繁琐的底层编程,因此可大大提高工作效率。MATLAB是解决工程技术问题的技术平台。利用它能够轻松完成复杂的数值计算,数据分析,符号计算和数据可视化等任务。MATLAB软件由主包和各类工具箱构成。其中,主包基本是一个用C/C++等语言编写成的函数库。该函数库提供矩阵(或数组)的各种算法以及建立在此基础上的各种应用函数和一些相关的用户有好操作界面。而工具箱从深度和广度上大大扩展了MATLAB主包的功能和应用领域。随着自身的不断完善和发展,MATLAB功能越来越强大,而且应用的范围也越来越广。2.2图像平移的基本理论图像平移是将一幅图像中所有的点都按照指定的平移量在水平、垂直方向移动,平移后的图像与原图像相同。平移后的图像上的每一点都可以在原图像中找到对应的点。利用齐次坐标,变换前后图像上的点P0(x0,y0)和P(x,y)之间的关系可以用如下的矩阵变换表示为:Dx=2,Dyy=-1yyyxxx001100100110yxyxyx燕山大学课程设计说明书2.3图像缩放的基本理论图像比例缩放是指将给定的图像在x轴方向按比例缩放fx倍,在y轴方向上按比例缩放fy倍,从而获得一幅新的图像。比例缩放前后两点P0(x0,y0)、P(x,y)之间的关系用矩阵形式可以表示为:10000000100yxfyfxyxx=fxx0y=fyy0获取原图像行列数M、N三个入口参数:原图像I,缩放倍数r,插值方式mode扫描新图像,计算对应原图像坐标判断插值方式结束初始化最近邻插值根据不同插值算法计算输出图像双线性插值计算新原图像行列数rM、rN双三次插值图像缩放算法流程图获取原图像行列数M、N三个入口参数:原图像I,缩放倍数r,插值方式mode扫描新图像,计算对应原图像坐标判断插值方式结束初始化最近邻插值根据不同插值算法计算输出图像双线性插值计算新原图像行列数rM、rN双三次插值图像缩放算法流程图燕山大学课程设计说明书MATLAB图像处理工具箱中的函数imresize可以对图像进行插值缩放,如果不指定插值方法,则默认使用最近邻插值法。imresize函数的语法格式为:B=imresize(A,m,method)这里参数method用于指定插值的方法,可选的值为nearest(最近邻法),bilinear(双线形插值)及bicubic(双三次插值),默认值为nearest。B=imresize(A,m,method)返回原图A的m倍放大图像(m小于1时效果是缩小)。图像的缩放操作将会改变图像的大小,产生的图像中的像素可能在原图中找不到相应的像素点,这样就必须进行近似处理。一般的方法是直接赋值为和它最相近的像素值,也可以通过一些插值算法来计算。下面的代码直接采用了前一种做法。2.4图像旋转的基本理论图像的旋转实际上是坐标系的旋转,下图给出了图像转的原理示意图。旋转是指将图像中所有的像素(基准点除外)按给定角度θ在XY平面内顺时针或逆时针方向沿圆弧路径进行变换的过程。当基准点为原点时,原始点(x0,y0)和变换后θ燕山大学课程设计说明书对应点(x,y)的角度和坐标关系如下图所示。图像的旋转变换也可以用矩阵变换表示。上式写成矩阵表达式为:上述旋转是以坐标原点(0,0)为基点进行的,但在实际应用中,往往是一图像中心为基点对图像进行旋转。具体操作是:先将坐标系平移到图像中心,再进行旋转,然后平移回原始坐标原点。在对数字图像进行旋转的时候,各象素的坐标将会发生变化,使得旋转之后不能正好落在整数坐标处,因此,需要进行插值。一般来说,旋转后的图像会比原图大,超出原图像的部分值为0。在二维变换中,点P0旋转到点P1,可以通过矩阵变化计算得出。由于有浮点计算带来的误差,P1点在某些时候会落在预期坐标的附近,而带来图形部分轻微的失真。在工具箱中的函数imrotate可用来对图像进行插值旋转,默认的插值方法也是最近邻插值法。Imrotate的语法格式为:B=imrotate(A,angle,method)函数imrotate对图像进行旋转,参数method用于指定插值的方法,可选的值为nearest(最近邻法),bilinear(双线形冲值)及bicubic(双三次插值),默认值为nearest。imrotate函数可把源图像以其几何中心为轴旋转任意A角后显示,并得到相应矩阵。旋转后的图像相当于用一矩形把旋转后的图像内接起来,四个角填充以黑色。yOxP0(x0,y0)P(x,y)r旋转前:x0=rCosθy0=rSinθ旋转后:x=rCos(θ-a)=rCosθCosa+rSinθSina=x0Cosa+y0Sinay=rSin(θ–a)=rSinθCosa–rCosθSina=-x0Sina+y0Cosa11000acosasin0asinacos100yxyx燕山大学课程设计说明书获取原图像大小入口参数:原图像,旋转角度求cosθ、sinθ求旋转图像行列坐标(以图像左上角为坐标原点)计算旋转图像尺寸扫描旋转图像,计算像素点对应原图像行列坐标计算旋转图像灰度结束图像旋转算法流程图获取原图像大小入口参数:原图像,旋转角度求cosθ、sinθ求旋转图像行列坐标(以图像左上角为坐标原点)计算旋转图像尺寸扫描旋转图像,计算像素点对应原图像行列坐标计算旋转图像灰度结束图像旋转算法流程图燕山大学课程设计说明书2.5图像镜像的基本理论两个入口参数:原图像,镜像方式初始化获取原图像行列数M、N扫描新图像,计算对应原图像坐标判断镜像方式x0=x;y0=M-y+1x0=N-x+1;y0=M-y+1x0=N-x+1;y0=y结束垂直镜像水平镜像水平垂直镜像图像镜像算法流程图对新图像进行赋值燕山大学课程设计说明书第三章程序设计3.1图像的平移3.1.1平移的程序1、用程序实现图像的平移i=imread('Sailboat256G.bmp');imshow(i);[m0n0]=size(i);%处理后图像初始化fory=1:n0;forx=1:m0;x0=x-0;y0=y-40;ifx0=1&&x0=m0&&y0=1&&y0=n0;I(x0,y0)=i(x,y);end;end;end;imshow(I)2、用调用函数实现图像的平移调用函数functionI=pingyi(i)[m0n0]=size(i);%处理后图像初始化fory=1:n0;forx=1:m0;x0=x-0;y0=y-40;ifx0=1&&x0=m0&&y0=1&&y0=n0;I(x0,y0)=i(x,y);end;end;end;主程序i=imread('Sailboat256G.bmp');燕山大学课程设计说明书I=pingyi(i);imshow(I);3.1.2平移的图像3.2图像的缩放3.2.1缩放的程序1、用程序实现图像的平移A=im
本文标题:图像几何变换
链接地址:https://www.777doc.com/doc-7279270 .html