版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实 习 报 告 课程名称 多媒体实验 实习题目 图形图像用户界面设计 专 业 通信工程 班 级 通信(2)班 学号 学生姓名 实习成绩 指导教师 吴娱 2011年5月图形图像用户界面设计一、实验目的了解句柄图形的基本概念,掌握图形用户界面的基本设计方法。二、实验要求上机完成实验题目,独立完成实验报告。三、实验内容设计简单的图像用户界面。四、实验步骤1、在MATLAB的命令窗口(Command Window)中运行guide命令:打开GUIDE界面,如下:然后,选择空模板(Blank GUI),点击OK,即可打开GUIDE的设计界面,如下:点击工具栏上的菜单编辑器(Menu Editor),打开
2、菜单编辑器,如下:在Menu Bar中新建一个菜单项,名字为“文件”,在“文件”菜单下添加菜单项:“打开”、“保存”、“退出”。如下:保存界面为pjimage.fig,保存完毕之后,会自动打开pjimage.m文件,所有的程序都是要写在这个M文件里面的。在编程中,每一个鼠标动作都对应一个Callback函数。那么菜单项也是如此。在界面上,单击鼠标右键选择“Property Inspector”,即可打开属性窗口。当点击不同的控件时,其对应的属性都会在这里显示,根据需要可以进行修改。最主要的属性莫过于Tag属性和String属性。设置当前的Figure窗口的Tag属性为:figure_pjima
3、ge,窗口的标题(Name属性)为:图像处理实例。如下:然后,点击工具栏的保存按钮。之后,点击工具栏的运行按钮(Run)。程序运行时的样子,是这样的:文件下面的菜单项和快捷键我们都能看见,但是我们没有写程序,所以就算点也没有什么响应。还有如果不想设置快捷键,可以在Menu Editor中设置,只要把其选择为Ctrl+none就行了。这样的话,保存项就没有快捷键了。可以通过上面的按钮“View”来查看该菜单项的响应函数,也就是Callback函数。也可以在pjimage.m中看,比如保存的Tag属性是m_file_save,那么它对应的Callback函数的名字就是m_file_save_Cal
4、lback。依次类推了。2、下面来写打开菜单项的函数,要打开一个图片,当然要用打开对话框了。在界面编程中,打开对话框的函数是uigetfile,关于它的详细说明用help uigetfile命令查看。下面是打开菜单的响应函数:function m_file_open_Callback(hObject, eventdata, handles)filename,pathname=uigetfile(. '*.bmp;*.jpg;*.png;*.jpeg','Image Files(*.bmp,*.jpg,*.png,*.jpeg)'. '*.*',&
5、#39;All Files(*.*)',. 'Pick an image');保存.m文件,并运行程序。点击“文件”下的“打开”,会打开如下的打开对话框:那么获得路径后,要怎么样才能读入和显示一个图像呢?读入图像可以用imread函数,而需要显示在一个坐标轴上。所以,需要在界面上画一个坐标轴,为了对比,画两个坐标轴,一个显示处理前,一个显示处理后的。并且将处理前的坐标轴的Tag属性改为axes_src,处理后的坐标轴的Tag属性为axes_dst。更改之后,保存,如下:然后在m_file_open_Callback程序原来的基础上,再添加如下的程序:axes(handl
6、es.axes_src);%用axes命令设定当前操作的坐标轴是axes_srcfpath=pathname filename;%将文件名和目录名组合成一个完整的路径imshow(imread(fpath);%用imread读入图像,并用imshow在axes_src上显示运行程序,通过“打开”菜单项,打开一个图像。效果如下:然后用imwrite命令。但imwrite命令的第一个参数就是所读入的图像数据,也就是imread的返回值。这样的话,就要将m_file_open_Callback中的程序做一点小小的改动。将最后一句imshow(imread(fpath),更改为两句,如下:img_sr
7、c=imread(fpath);imshow(img_src);来保存一幅图像。不仅如此,保存菜单的Callback函数,如何去获得打开菜单的Callback函数下的img_src变量呢?这就要将img_src来作为一个共享的数据,用setappdata和getappdata两个函数。可以为界面上面的任何一个具有Tag属性的空间添加应用程序数据。在.m文件中会发现除了各个菜单项的Callback函数以外,还有两个函数:pjimage_Opening Fcn和pjimage_OutputFun。而pjimage_Opening Fcn就相当于界面的初始化函数,而pjimage_OutputFun
8、则是界面的输出函数,也就是当你不运行fig,而调用.m文件时的返回值。所以,要在pjimage_Opening Fcn中添加如下程序,来共享这个img_src矩阵。代码如下:setappdata(handles.figure_pjimage,'img_src',0);然后,在m_file_open_Callback函数的最后写上如下程序:setappdata(handles.figure_pjimage,'img_src',img_src);那么,在m_file_save_Callback函数中就可以像这样的来提取img_src,如下:img_src=getap
9、pdata(handles.figure_pjimage,img_src);那么保存的时候,自然会用到保存对话框了。要用保存对话框,就要用到uiputfile函数了,具体的请看help uiputfile查看。保存菜单项下的程序(m_file_save_Callback),可以这样写:img_src=getappdata(handles.figure_pjimage,'img_src');filename,pathname=uiputfile('*.bmp','BMP files''*.jpg;','JPG files
10、39;,'Pick an Image');if isequal(filename,0)|isequal(pathname,0)return;%如果点了“取消”else; fpath=fullfile(pathname,filename);%获得全路径的另一种方法 endimg_src=getappdata(handles.figure_pjimage,'img_src');%取得打开图像的数据imwrite(img_src,fpath);%保存图像下面是退出菜单项的程序的。要退出界面,只要用close函数就行了。如下:Close(handles.figure_pjimage);五、实验心得:这次实验主要内容是利用matlab软件进行图形图像用户的界面设计(界面选项功能的设计:打开图像,保存文件,退出),虽然程序不用我们自己设计,但是由于初次接触感觉到设计的步骤很多,容易出乱子,容易出错。所以这个实验要求我们要每一步都正确的完成,界面才可以被设计出来。实验中会遇到各种各样的问题,首先是程序语句输入法的错误,比如说直接复制粘贴img_src=getappdata(handles.figure_pjimage,img_src);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- JJF 1073-2026高频Q表校准规范
- 货检值班员岗前持续改进考核试卷含答案
- 灯用化学配料工岗前工作改进考核试卷含答案
- 洗衣机零部件制作工QC管理模拟考核试卷含答案
- 甲基叔丁基醚丁烯-1装置操作工风险评估与管理水平考核试卷含答案
- 老年人合法权益保护制度
- 酒店客房服务礼仪制度
- 虫害鼠害控制制度
- 采购信息网络安全与保密制度
- 济南国网培训
- 危险化学品安全法解读
- GB/T 7714-2025信息与文献参考文献著录规则
- 信访工作课件
- 110kV旗潘线π接入社旗陌陂110kV输电线路施工方案(OPGW光缆)解析
- 第5章 PowerPoint 2016演示文稿制作软件
- 基坑支护降水施工组织设计
- 预拌商品混凝土(砂浆)企业安全生产检查表
- 焊接结构焊接应力与变形及其控制
- 中石油管道局燃气管道施工组织设计
- YY/T 1872-2022负压引流海绵
- GB/T 17766-1999固体矿产资源/储量分类
评论
0/150
提交评论