Matlab图形界面图像的旋转平移和缩放

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Matlab图形界面图像的旋转、平移和缩放

姓名:

班级:

学号:

目录

问题描述 (2)

摘要 (2)

正文 (3)

1、界面设计 (3)

2、打开图片功能 (4)

3、实现图片的任意角度的旋转 (5)

4、图像的平移 (8)

5、图像的缩放(放大与缩小) (12)

实验心得 (16)

附录: (16)

Matlab图形界面操作

------图像的旋转、平移和缩放

问题描述

期末运用学习的matlab知识通过图形用户界面对图片进行操作,实现如下功能。

●能够查找和读取计算机中存储图像。

●实现图像的旋转、平移、缩放等几何变换。

●通过matlab界面功能实现界面的完美布局。

●编写代码和回调函数实现上述功能。

摘要

本次任务旨在完成以下几个任务:

●整体分为四大模块:原图、旋转、平移和缩放。

●利用数字图像处理技术,以MATLAB为平台,建立一个实现设计主题的

简易处理系统。

●能显示输入图像、输出图像。

●程序代码要有注释说明,调用MATLAB函数要清楚并理解函数的功能、

使用范围,在设计说明书中要写清楚函数的功能和参数意义。

●完成自己课程设计说明书。

正文

1、界面设计

(1)在MATLAB命令窗口中输入“guide”,确定后,弹出GUI窗口。

(2)本次设计中,包含两个坐标轴(axes1、axes2),分别显示原图和处理后的图像。包含六个按钮(Push Button),分别实现“打开图片、保存处理后的图片、旋转、平移、放大、缩小以及退出功能”。

(3)旋转功能同时可以实现选择0—360度任意的度数,当选择不同的度数后,axes2位置就会显示不同选择角度的图片。如果需要保存该图片可以单击保存按钮进行保存。

(4)平移功能的实现,当单击平移按钮,可以有一个默认的平移位置。在设计中预设了几个固定位置,可以选择,分别是X单位Y单位方向都可以选择。达到平移的目的。

(5)放大和缩小功能类似,在界面上表现为选择不同的数据,反映出来不同大小的图片。

(6)操作完成后,点击退出功能,将询问是否退出,如果退出则点击“是”,不退出点击“我还要看看”。

2、打开图片功能

进入程序界面后,要实现几何操作,需要先打开一张图片。单击打开图片按钮,可以选择图片路径,从存储图片的地址任意旋转一张图片,图片就会显示在axes1的位置。效果如2-1所示:

图2-1

如果想再打开一张图片进行操作,可以再次单击“打开图片”按钮进行操作,效果如图2-2所示:

图2-2

3、实现图片的任意角度的旋转

该功能回调函数使用的是imrotate函数,其调用格式如下所示:

(1)函数说明及参数选择

I0=imrotate(loadImage,value);I0是处理后的图片。loadImage是定义的全局变量,当打开图片后,将新图片的值赋予该变量。Value值是传递过来的度数值。

(2)问题分析

如果value值是一个定值,在实现旋转功能时,仅能在一个位置,通过优化,实现任意角度旋转。

(3)运用的函数和方法

旋转功能涉及imrotate以及imshow函数,详细方法参考源代码。

(4)实验结果

点击旋转按钮,默认值为180度,效果如图3-1所示:

图3-1(旋转180度)

拖动滑动条,选择其他角度,实现旋转功能。旋转72度效果如图3-2所示:

图3-2(旋转72度)

旋转0度即不进行旋转,效果如图3-3所示:

图3-3(旋转0度)

通过验证,随意拖动滑动条,均可以正常显示,如图4-4所示:

图3-4

更换其他图片实现旋转功能,效果图3-5所示:

图3-5

(5)结果分析:

一般图像的旋转是以图像的中心为原点,旋转一定的角度,也就是将图像上的所有像素都旋转一个相同的角度。旋转后图像的大小一般会改变,即可以把转出显示区域的图像截去,或者扩大图像范围来显示所有的图像。图像的旋转变换也可以用矩阵变换来表示。

4、图像的平移

(1)问题分析:

图像平移是将一幅图像中所有的点都按照指定的平移量在水平、垂直方向移动,平移后的图像与原图像相同。平移后的图像上的每一点都可以在原图像中找到。

(2)实验方法:

设(x0,y0)为原图像上的一点,图像水平平移量△X,垂直平移量为△Y,则平移后点(x0,y0)的坐标变为(x1,y1)。(x0,y0)与(x1,y1)之间的关系为:x1=x0+△x;y1=y0+△y。该功能可以通过函数translate函数实现。关键代码se=translate(strel(1),[100 -100]); strel(1)表示图像不变,进行[Y X]方向的平移,se是设置的图像平移的距离。平移变量的旋转通过switch来判断并进行传递。

(3)实验结果:

平移量为(-100,-100)时,效果如图4-1所示:

图4-1

平移量为(-50,-100)时,效果如图4-2所示:

图4-2

平移量为(0,-100)时,效果如图4-3所示:

图4-3

平移量为(-50,-100)时,效果如图4-4所示:

图4-4

平移量为(100,0)时,效果如图4-5所示:

图4-5

平移量为(100,100)时,效果如图4-6所示:

图4-6

更换其他图片进行平移操作,效果如图4-7:

相关文档
最新文档