图像几何变换程序设计.doc

上传人:rrsccc 文档编号:9903937 上传时间:2021-04-02 格式:DOC 页数:23 大小:1.35MB
返回 下载 相关 举报
图像几何变换程序设计.doc_第1页
第1页 / 共23页
图像几何变换程序设计.doc_第2页
第2页 / 共23页
图像几何变换程序设计.doc_第3页
第3页 / 共23页
图像几何变换程序设计.doc_第4页
第4页 / 共23页
图像几何变换程序设计.doc_第5页
第5页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《图像几何变换程序设计.doc》由会员分享,可在线阅读,更多相关《图像几何变换程序设计.doc(23页珍藏版)》请在三一文库上搜索。

1、*实践教学*兰州理工大学计算机与通信学院2012年秋季学期 图像处理 综合训练题 目: 图像几何变换程序设计 专业班级: 姓 名: 学 号: 指导教师: 成 绩: 目录摘 要1一、前言2二、算法分析与描述32.1图象平移32.2图象比例变换32.3图象水平、垂直翻转42.4图象旋转4三、详细设计过程63.1算法分析63.2设计内容73.3流程图7四、调试过程中出现的问题及相应解决办法9五、程序运行截图及其说明10六、简单操作手册13设计总结17参考资料18致谢19附录20摘 要图形图像处理主要是通过计算机对图像进行处理,从而达到预期的那种效果的技术。因为处理离不开计算机,所以又称计算机图像处理

2、。图像几何变换是计算机图像处理中很重要的一部分,主要包括图像的水平、垂直翻转,图像旋转变换,图像比例变换。在图像处理中,可以通过MATLAB来实现图像的几何变换,此软件的语法结构简单,并且具有极强的数值计算、图形文字处理、数据分析、图形绘制及图像处理等功能。关键字:图像的几何变换;MATLAB;图像的旋转;垂直、水平翻转;比例变换一、前言MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB是一种既可交互使用又能解释执行的计算机编程语言。所谓交互使用,

3、是指用户输入一条语句后立即就能得到该语句的计算结果,而无需像C语言那样首先编写源程序,然后对之进行编译,连接,才能最终形成可执行文件。MATLAB语言可以用直观的数学表达式来描述问题,从而避开繁琐的底层编程,因此可大大提高工作效率。图像用数字任意描述像素点、强度和颜色。描述信息文件存储量较大,所描述对象在缩放过程中会损失细节或产生锯齿。在显示方面它是将对象以一定的分辨率分辨以后将每个点的色彩信息以数字化方式呈现,可直接快速在屏幕上显示。分辨率和灰度是影响显示的主要参数。图像适用于表现含有大量细节(如明暗变化、场景复杂、轮廓色彩丰富)的对象,如:照片、绘图等,通过图像软件可进行复杂图像的处理以得

4、到更清晰的图像或产生特殊效果。图像几何变换主要是指数字图像的几何变换(或称为空间变换),即图像中点与点之间的空间映射关系。是通过数学建模实现对数字图象进行几何变换的处理。可以让我们从不同角度去观察或欣赏图片,增加对个方位图像的理解。二、算法分析与描述2.1图象平移图像平移是将一幅图像中所有的点都按照指定的平移量在水平、垂直方向移动,平移后的图像与原图像相同。平移后的图像上的每一点都可以在原图像中找到 利用齐次坐标,变换前后图像上的点P0(x0, y0)和P(x, y)之间的关系可以用如下的矩阵变换表示为: 2.2图象比例变换图象比例变换是指图象缩小。图象缩小是通过减少像素个数来实现的,根据所期

5、望缩小的尺寸数据,从原图象中选择合适的像素点,使图象缩小之后可以尽量保持原有图像的概貌特征不丢失。以图象缩小为例设原图像大小为M*N,缩小为k1M*k2N,(k11,k2打开,选中所要处理的图片,打开。选择所要进行的变换方式,进行变换,打开图片界面图(9) 操作界面 平移效果: 图(10) 图(11)放大、缩小: 图(12) 图(13)双线性内插法放大2倍水平翻转: 图(14)水平翻转垂直翻转: 图(15)垂直翻转旋转: 图(16) 图(17)图像旋转100度(截取部分)撤销、退出:“撤销”可以实现图像的还原,“退出”可以退出编辑 图(18) 设计总结通过这次“基于matlab的数字图像处理”

6、的课程设计,学到了很多很多,最基本的就是重新熟悉了matlab语言,不仅仅只是在matlab编程上面有所提高和对界面设计熟悉,对数字图像处理也有了更深刻的认识。首先,明白了图像对于matlab而言就是矩阵,灰度图像和彩色图像对应于不同维数的矩阵,分别为二维和三维,其中三维矩阵每一位代表一种颜色。矩阵可以使实数,也可以使复数,不同的图像矩阵的元素对应于不同的类型,有double,uint8等类型。由于几乎所有的matlab函数及其工具箱函数都可以使用double作为参数类型,不过由于64bit来表示图像数据存储量特别巨大,所以matlab还支持图像数据的无符号整型存储,所以使用时还要注意输出数据

7、类型的转换。最后,我们必须要明白理论指导实践,要想实现预期的效果,必须明白它实现的机制和相应的算法,只有通过相应的理论来指导,我们才能有所创新,才能有所突破,而不只是单纯的引用相应的处理函数。例如对于截图函数,它只能是截取坐标轴内的图像,对坐标轴意外的图像却不能处理,而且对于同时显示在坐标轴上的几张图像,它只能处理最后显示的那张,如果我们通过对它改进,能实现像qq截图那样的功能就很强大了。不过通过这次的实现,我对图像的模式,几何变换的原理,图像的平移,水平、垂直翻转,缩放以及旋转等原理都有了更清楚的认识,也明白了它们的实现机制。matlab还有很多很多新功能等待我们去探索。通过这次的课程设计,

8、我们受益匪浅。参考资料1郑阿奇,曹戈,赵阳.MATLAB实用教程M.北京:电子工业出版社2002年版2张弘.数字图像处理与分析M.北京:机械工业出版社 2005年版3孙兆林.MATLAB 6.X图像处理M.北京:清华大学出版社 2010年版致谢通过此次课程设计,在一定程度上提高了我的实际动手能力,同时也培养了我思考问题、解决问题的能力。对于matlab软件的应用能力也得到了很大的提高,了解到了很多自己有所不足的地方。虽然只有短短的两周时间,但是这使我认识到了做设计的乐趣,也明白了课程设计对于知识的吸收和要点的理解是非常重要,在两周的时间里,遇到了很多问题,周围同学和老师的帮助起了很大的作用,非

9、常感谢他们,充分体会到了团队合作的重要性。附录Matlab程序实现代码(1)图片的平移平移axes(handles.axes2); %定义图像显示位置 I=handles.img;%选定操作图 T=getimage;%获取图像信息 prompt=输入参数:; defans=2; p=inputdlg(prompt,input,1,defans); %创建数据输入窗口 p1=str2num(p1); J = double(I);%定义为双精度型 H = size(I);%定义尺寸I_moveresult = zeros(H);%平移后背景变成了黑色的 x_move =p1; y_move =p1

10、;I_moveresult(x_move+1:H(1),y_move+1:H(2),1:H(3)= J(1:H(1)-x_move,1:H(2)-y_move,1:H(3); imshow(mat2gray(I_moveresult);(2)图片的放大、缩小缩放axes(handles.axes2); %定义图像显示位置; I=handles.img; %选定操作图T=getimage; %获取图像信息 prompt=输入参数:; defans=2;%定义数据,放大缩小 p=inputdlg(prompt,input,1,defans);%创建数据输入窗口 p1=str2num(p1);f=i

11、mresize(I,p1,nearest); %选用插值方法最近邻法 figure,%新建窗口imshow(f);%显示结果(3)图片翻转水平翻转axes(handles.axes2); %定义图像显示位置; A1=handles.img; %选定操作图 A1=double(A1);%定义为双精度型 H=size(A1);%定义尺寸A3(1:H(1),1:H(2),1:H(3)=A1(1:H(1),H(2):-1:1,1:H(3);%水平翻转imshow(uint8(A3);%显示结果垂直翻转axes(handles.axes2); %定义图像显示位置; A1=handles.img; %选定

12、操作图 A1=double(A1); %定义为双精度型 H=size(A1); %定义尺寸A2(1:H(1),1:H(2),1:H(3)=A1(H(1):-1:1,1:H(2),1:H(3);%垂直翻转imshow(uint8(A2); %显示结果(4)图片的旋转旋转axes(handles.axes2); %定义图像显示位置;T=getimage; %获取图像信息prompt=旋转角度:;defans=0; p=inputdlg(prompt,input,1,defans); %创建数据输入窗口p1=str2num(p1);%把字符串转换为数值f=imrotate(handles.img,p1,nearest);%旋转并定义插值方法imshow(f); %显示结果(5)撤销(还原) axes(handles.axes2);%还原y=imread(S);f=imshow(y);handles.img=y;guidata(hObject,handles);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1