信息处理系统综合设计课程设计-图像几何变换GUI设计_第1页
信息处理系统综合设计课程设计-图像几何变换GUI设计_第2页
信息处理系统综合设计课程设计-图像几何变换GUI设计_第3页
信息处理系统综合设计课程设计-图像几何变换GUI设计_第4页
信息处理系统综合设计课程设计-图像几何变换GUI设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学 号11780122天津城建大学 信息处理系统综合设计 设计说明书图像几何变换软件的GUI设计起止日期: 2014 年 12 月 29 日 至 2015 年 1 月 23 日学生姓名XXX班级成绩指导教师(签字) 计算机与信息工程学院2015年 1月 23日天津城建大学课程设计任务书2014 2015学年第一学期 计算机与信息工程 学院 电子信息科学与技术 专业 11电信科1班 班级课程设计名称: 信息处理系统综合设计 设计题目: 图像几何变换软件的GUI设计 完成期限:自 2014 年 12 月 29 日至 2015 年 1 月 23 日共 4 周设计依据、要求及主要内容(可另加附页):利

2、用Matlab软件进行GUI设计,实现图像几何变换软件的设计集成不同参数的不同图像几何变换方法(至少4种以上平移/旋转/缩放/镜像/错切),实现不同几何变换效果的对比指导教师(签字): 系主任(签字): 批准日期: 2014 年12月 18 日目录 TOC o 1-3 u 第1章 图像几何变换设计原理 PAGEREF _Toc409125350 h 1引言 PAGEREF _Toc409125351 h 11.2 程序设计框图 PAGEREF _Toc409125352 h 1原理介绍 PAGEREF _Toc409125353 h 21.3.1 平移原理 PAGEREF _Toc409125

3、354 h 21.3.2 缩放原理 PAGEREF _Toc409125355 h 21.3.3 旋转原理 PAGEREF _Toc409125356 h 21.3.4 镜像原理 PAGEREF _Toc409125357 h 31.3.5 错切原理 PAGEREF _Toc409125358 h 4第2章 图像几何设计实现 PAGEREF _Toc409125359 h 52.1 MATLAB GUI设计界面介绍 PAGEREF _Toc409125360 h 52.1.1 MATLAB GUI介绍 PAGEREF _Toc409125361 h 5本次研究中所使用的GUI设计界面本 PAG

4、EREF _Toc409125362 h 52.2 图像几何变换核心程序简介 PAGEREF _Toc409125363 h 6图像平移 PAGEREF _Toc409125364 h 6图像缩放 PAGEREF _Toc409125365 h 6图像旋转 PAGEREF _Toc409125366 h 7图像镜像 PAGEREF _Toc409125367 h 7图像错切 PAGEREF _Toc409125368 h 72.3 界面之间的转换 PAGEREF _Toc409125369 h 8第3章 设计的结果与分析 PAGEREF _Toc409125370 h 9图像平移效果及分析 P

5、AGEREF _Toc409125371 h 9图像缩放效果及分析 PAGEREF _Toc409125372 h 9图像旋转效果及分析 PAGEREF _Toc409125373 h 10图像镜像效果及分析 PAGEREF _Toc409125374 h 10图像错切效果及分析 PAGEREF _Toc409125375 h 11第4章 总结 PAGEREF _Toc409125376 h 12参考文献 PAGEREF _Toc409125377 h 13附录 PAGEREF _Toc409125378 h 14第1章 图像几何变换设计原理在现实生活中,几何变换对于图像编辑来说具有很大的作用

6、,例如对采集的的照片位置,大小不满意时,都可以借助图像的几何变换来实现改变图像的空间位置的操作1。几何变换又称空间变换,是将原图像的位置坐标映射到新坐标上,但并不改变其图像的像素值,仅仅只是对图像的像素重排,其中由于坐标变换后,某些位置上出现了空洞点,需要通过插值处理,使得图像完整2。本次设计使用MATLAB GUI为载体进行软件设计,程序中所采用的插值均为最近邻插值,所涉及到的图像几何变换有平移、缩放、旋转、镜像和错切。1.2 程序设计框图开始主界面设计平移缩放旋转镜像错切实现相应地各种操作结束图1 程序设计框图1.3.1 平移原理将图像中所有的点都按照指定的平移量水平、垂直移动。设(x0,

7、 y0)是原图像上的一点,图像水平平移量为tx,垂直平移量为ty,则平移后点(x0, y0)的坐标变为(x1, y1)。(x0, y0)与(x1, y1)之间的关系为:以矩阵的形式表示为:它的逆变换:平移后的图像中每个像素的颜色是由原图像中的对应点颜色确定3。1.3.2 缩放原理假设x轴放大因子为c, y轴放大因子为d,缩放的变换矩阵为4:1.3.3 旋转原理通常是以图像的中心为圆心旋转,按顺时针方向旋转。旋转前:旋转a角度后:以矩阵的形式表示为: rrab(x0, y0)(x1, y1)yxO图2 旋转示意图式中,坐标系是以图像的中心为原点,向右为x轴正方向,向上为y轴正方向。它和以图像左上

8、角为原点,向右为x轴正方向,向下为y轴正方向的坐标系之间的转换关系如图3所示5。 (x, y)yxOxyO图3 两种坐标系间的转换关系图设图像的宽度为w,高度为h,容易得到:逆变换为:有了以上公式,可以把变换分成三步:第一步,将坐标系变成;第二步,将该点顺时针旋转a角度;第三步,将坐标系变回。这样,我们就得到了变换矩阵,它是上面三个矩阵的级联。那么对于新图像中的每一点,就可以根据对应原图中的点,得到它的灰度。如果超出原图范围,则填成白色。要注意的是,由于有浮点运算,计算出来点的坐标可能不是整数,采用取整处理或插值来处理6。1.3.4 镜像原理图像的镜像变换是以图象垂直中轴线或水平中轴线交换图像

9、的变换,分为垂直镜像变换和水平镜像变换,两者的矩阵形式分别为7: 1.3.5 错切原理变换前和变换后y坐标不变,而x坐标根据y坐标值作线性变换,变换前后点的坐标之间的关系为:式中为变换系数。若,沿X正方向错切;若,则沿着X负方向错切。所以,错切矩阵为:在X、Y平面上不考虑Z轴方向8。第2章 图像几何设计实现2.1 MATLAB GUI设计界面介绍2.1.1 MATLAB GUI介绍在Matlab中,图形用户界面(graphical user interface,GUI)是Matlab中一个专用于GUI程序设计的向导设计器,而GUI是由各种图形对象,如图形窗口、图轴、菜单、按钮、文本框等构建的用

10、户界面,是人机交互的有效工具和方法。通过GUIDE可以很方便地设计出各种符合要求的图形用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。GUI设计既能以基本的Matlab程序设计为主,也能以鼠标为主,利用GUIDE工具进行设计,也可综合以上两种方法进行设计。GUIDE主要是一个界面设计工具集。Matlab将所有GUl支持的用户控件都集成在这个环境中并提供界面外观、属性和行为相应方式的设置方法。GUIDE将用户保存设计好的图形用户界面保存在一个FIG资源文件中,同时自动生成包含图形用户界面初始化和组件界面布局控制代码的M文件,这

11、个M文件为实现回调函数的编写提供了一个参考框架。FIG文件是一个二进制文件,包含系列化的图形窗口对象。所有对象的属性都是用户创建图形窗口时保存的属性。该文件最主要的功能是对象句柄的保存。M文件包含GUI设计、控制函数及控件的回调函数,主要用来控制GUI展开时的各种特征。该文件基本上可以分为GUI初始化和回调函数2个部分,控件的回调函数可根据用户与GUI的具体交互行为分别调用9。下面我们以图4为例,说明界面设计的功能10。图4 GUI设计界面实例通过上图,我们看到本次设计基本上采用静态文本框、按钮、坐标轴和复选按钮。其功能介绍如下:静态文本框:输入文字,将标注的信息显示出来。按钮与复选按钮:通过

12、点击,完成一次命令,可以使载入图像,也可以是返回主界面或者完成命令。坐标轴:也是可视化窗口,将原图和所变换的图像通过两个坐标轴显示出来,以供比较。2.2 图像几何变换核心程序简介核心程序:se=translate(strel(1),40 -40);b=imdilate(dai,se);功能:使用translate函数将图像进行搬移,其中第一个函数参数表示只对图像进行搬移而不改变图像本身,第二个参数则是平移的坐标,然后再通过imdilate函数将图像展现出来。核心程序(方法一): g=imresize(dai,1); / 此函数为放大一倍,若将1改为0.5,则表示缩小一倍axes(handles

13、.axes2);set(handles.axes2, Units, pixels);x,y=size(g);set(gca,position,350 237 y x)功能:imresize函数作为图像缩放的主要函数,函数第一个参数为图像文件名,第二个参数为缩放倍数。缩放完成后设置坐标轴2。若不设置坐标轴,那么图像的大小将自动适应于新坐标,本程序为了比较明显的看出图像的缩放,则设置了坐标,用size函数测量了图像的宽和高,然后使得坐标的宽和高与图像相适应,而其他两个位置变量则固定不变。这样显示出来的图像就有了可比较的特点。核心程序(方法二):prompt=(缩放度数);p=inputdlg(pr

14、ompt,input,1,defans);p1=str2num(p1);f=imresize(dai,p1,nearest);set(handles.axes2, Units, pixels);x,y=size(f);set(gca,position,350 277 y x)功能: Inputdlg函数是用对话框的格式输入缩放的参数,prompt是对话框的文字提示,提示出要输入的参数是什么,input指的是输入参数,1是指对话框的行数,defans是默认的初始值。同时用字符转换成数字来改变缩放参数,因为输入的只是一个字符型的参数要将其转换成数字才能应用,其余同方法一,坐标也要相应的适应新的图像

15、。核心程序(方法一):dai=imrotate(dai,45);/第二个参数则是旋转的度数功能:旋转的函数通过imrotate函数就能完成,第一个变量为图像名称,第二个变量则是旋转的度数。核心程序(方法二):prompt=(旋转角度);defans=0;p=inputdlg(prompt,input,1,defans);p1=str2num(p1);f=imrotate(dai,p1,nearest);功能: Inputdlg函数是用对话框的格式输入缩放的参数,prompt是对话框的文字提示,提示出要输入的参数是什么,input指的是输入参数,1是指对话框的行数,defans是默认的初始值。同

16、时用字符转换成数字来改变缩放参数,因为输入的只是一个字符型的参数要将其转换成数字才能应用,其余同方法一。此方法默认是最近邻方法,同时也可用双线性和双立方插值的方式对次图像进行处理。 核心程序: k=fliplr(dai);k=flipud(dai);功能: 上述函数分别为水平镜像和垂直镜像,水平镜像是以y轴为对称轴,而垂直镜像则以x为对称轴。在函数中直接写入图像名称即可。核心程序: s=maketform(affine,1 0.5 0;0 1 0;0 0 1);j=imtransform(dai,s);功能: 通过使用maketform函数构造矩阵,affine表示为仿射变换,后面的参数表示的

17、是位置矩阵,再由imtransformn函数进行数据传递转换,达到错切的效果。2.3 界面之间的转换1、界面之间的转换靠回调函数来实现:h=gcf; /返回当前句柄值main; /主函数名close(h);2、文件输入:filename,pathname=. uigetfile(*.bmp;*.jpg;*.gif,选择图片); /创建文件对话框str=pathname,filename;3、退出软件:Close all;第3章 设计的结果与分析 图5 平移左下位置效果图结果分析: 平移的效果就是以图像中心为原点坐标,输入两个参数,分别为x,y。由二维平面的坐标值改变图像的原始位置。本实验采用的

18、是定向的编写程序,通过指令来完成平移后的图像显示。也可以采用灵活的方式,使用对话框来输入需要的参数,图片的坐标是固定的,所以产生的效果就是移出去的部分不显示,空缺的位置为黑色,体现出需要的效果,同时还应该注意要使用灰度图像,若非灰度图像,则程序不能别识,应该使用a=rgb2gary(文件名)类似的函数来转换彩色图像为灰度图像,这样才能更好地对图像进行平移变换。 图6 图像缩小效果图结果分析: 缩放变换的效果是使图片的大小发生改变,本实验采用两种方法来实现,一种是固定参数的方法,其优点是简便操作,直接对命令按钮点击既能出现效果,另一种是通过对话框的形式输入参数,这种方法的好处是灵活性比较高。图像

19、的缩放一种是按比例进行的,一种是非比例缩放的,本次实验使用的是比例缩放。在放大缩小的过程中,图像的像素也会随之放大缩小。这就使得图像的像素位置会发生改变,有可能会涉及到非整数点,那么就会遇到一个问题,图像会出现空洞,这些空洞需要被填补以完善图像的整体,其中使用的方法有插值处理。插值处理又分为最近邻插值,双线性插值和双立方插值。本次实验默认使用最近邻插值,但其实最近邻插值的效果会随着图像的放大而出现块状效应,也就是俗称的马赛克。而是用双线性和双立方插值的方法就会使得这种效应减弱,但是后两种方法的过程在计算方面会很繁琐。在不影响图像质量的前提下,采用最近邻的方法处理图像可以得到所需的效果。 图7

20、图像旋转45效果图结果分析: 旋转角度的不同使得图像有不同的效果,但是在类似45的角度中,图像的坐标会发生改变,为了适应这种改变,可以通过坐标随着变换的改变而改变。本实验也采用两种方法实现。用内置函数就可以完成效果。 图8 图像水平镜像效果图结果分析: 镜像分为水平镜像和垂直镜像,镜像的判断是根据以什么作为对称轴,以x为对称的则是垂直镜像,以y轴为对称的则水平镜像。镜像的函数也可用内置函数来实现。 图9 图像垂直错切效果图结果分析: 图像错切,是一种仿射变换。类似于投影。我们知道直接投影就是垂直地去看图像的影子,而错切则是在水平和竖直方向分别以一定的角度来看投影,这样就出现图像斜着的感觉。图像

21、错切的实现是通过一个错切矩阵来实现的,改变一定的参数,就会使得错切的角度有很大的变化。第4章 总结通过这次综合课设,我学到了数字图像处理的几何变换方面的知识。通过自己制作MATLAB 图像几何变换软件,熟悉了设计界面,同时也了解到图像几何变换的原理。在制作软件中,通过查找资料,再到学习其中的重点知识,最后学以致用,将别人的知识加以改进作为自己的知识输出,在这个过程中我体会到了学习的乐趣。同时也借这次机会锻炼了自己编程的能力,为了毕业设计的学习打下良好的基础。课设中,我还遇到了一些问题,刚开始做缩放的时候总是把坐标轴的更改弄错,经过查书和网上搜索,最终将结果做出来了,我觉得至少这一点是我以前没有

22、做好的一部分,还有就是在做平移的时候总是想不出用什么函数来表示,通过认真反复看书和思考,我最后也攻克难题,实现了所有的功能。通过这次可是也使我对数字图像处理这门课程有了更深的了解,我从中悟到只有踏实的去一步步地做才能解决矛盾,困难,但是只是一味的想象困难是没有任何帮助的。在这次综合设计中我受益匪浅。参考文献4 5 朱振武. HYPERLINK :/www /kcms/detail/detail.aspx?filename=AQSX200903040&dbcode=CJFQ&dbname=CJFD2009&v= t _blank 例谈几何变换的应用J. 安庆师范学院学报(自然科学版). 2009

23、(03) 6 谢荷芳. HYPERLINK :/www /kcms/detail/detail.aspx?filename=ZNZK803.015&dbcode=CJFQ&dbname=CJFD1998&v= t _blank 二维图形的几种几何变换J. 中南民族学院学报(自然科学版).1998(03) 7 王昕娅,侯萌萌. HYPERLINK :/www /kcms/detail/detail.aspx?filename=GKSX200305021&dbcode=CJFQ&dbname=CJFD2003&v= t _blank 平面图形的几何变换J. 大学数学. 2003(05) 8 刘越.

24、 HYPERLINK :/www /kcms/detail/detail.aspx?filename=JMDB201004008&dbcode=CJFQ&dbname=CJFD2010&v= t _blank img图像的读取及其几何变换处理J. 佳木斯大学学报(自然科学版). 2010(04) 9 杜廷娜. HYPERLINK :/www /kcms/detail/detail.aspx?filename=ASGT200704009&dbcode=CJFQ&dbname=cjfd2007&v= t _blank 图像空间变换及MATLAB实现J. 鞍山科技大学学报. 2007(04) 10

25、李迎春,曾峦,丁向丽. HYPERLINK :/www /kcms/detail/detail.aspx?filename=XYZH200001010&dbcode=CJFQ&dbname=cjfd2000&v= t _blank 图像的几何运算方法J. 指挥技术学院学报. 2000(01) 附录1、平移程序:filename,pathname=. uigetfile(*.bmp;*jpg;*.gif,图像选择);str=pathname,filename;global image;global dai;image=imread(str);dai=image;axes(handles.axes

26、1);imshow(image);axes(handles.axes2);imshow(image);set(handles.radiobutton1,value,1);set(handles.radiobutton2,value,0);set(handles.radiobutton3,value,0);set(handles.radiobutton4,value,0);set(handles.radiobutton5,value,0);global dai;se=translate(strel(1),40 -40);b=imdilate(dai,se);axes(handles.axes2)

27、;imshow(b);h=gcf;main;close(h);以下程序返回与打开文件程序相同,只加入主要程序(选项程序与主程序相似):2、缩放程序:set(handles.radiobutton1,value,1);set(handles.radiobutton2,value,0);set(handles.radiobutton3,value,0);global dai;g=imresize(dai,1);axes(handles.axes2);set(handles.axes2, Units, pixels);x,y=size(g);set(gca,position,350 237 y x)imshow(g);方法二:global dai;axes(handles.axes2);imshow(dai);I=getimage;prompt=(缩放度数);defans=0;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论