预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共53页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

/NUMPAGES53 《MATLAB实践》 课程设计 学生姓名: ############## 学号:####### 专业班级:######## 指导教师:############ 二○一一年3月6日 目录 1.设计目的…………………………………………………3 2.题目分析…………………………………………………3 3.总体设计…………………………………………………3 4.具体设计…………………………………………………5 5.结果分析…………………………………………………34 6.心得体会…………………………………………………34 7.附录代码…………………………………………………36 1、设计目的:综合运用MATLAB工具箱实现图像处理的GUI程序设计,利用MATLAB图像处理工具箱,设计和实现自己的Photoshop。 2、题目分析 利用matlab的GUI程序设计一个简单实用的图像处理程序。该程序应具备图像处理的常用功能,以满足用户的使用。现设计程序有以下基本功能: 1)图像的读取和保存。 2)设计图形用户界面,让用户能够对图像进行任意的亮度和对比度变化调整,显示和对比变换前后的图像。 3)设计图形用户界面,让用户能够用鼠标选取图像感兴趣区域,显示和保存该选择区域。 4)编写程序通过最近邻插值和双线性插值等算法将用户所选取的图像区域进行放大和缩小整数倍的操作,并保存,比较几种插值的效果。 5)图像直方图统计和直方图均衡,要求显示直方图统计,比较直方图均衡后的效果。 6)能对图像加入各种噪声,并通过几种滤波算法实现去噪并显示结果。 7)额外功能。 3、总体设计 图一 软件的总体设计界面布局如上图所示,主要分为2个部分:显示区域与操作区域。 显示区域:显示载入原图,以及通过处理后的图像。 操作区域:通过功能键实现对图像的各种处理。 在截图中可见,左部为一系列功能按键如“还原”、“撤销”、“截图”等等;界面正中部分为图片显示部分,界面中下方为系列功能切换选择组。 设计完成后运行的软件界面如下: 图二 与图一先比,运行后的界面更为简洁。 利用“编辑”菜单可调出相应的功能键。例如: 4、具体设计 现介绍各个功能模块的功能与实现。 4.1菜单栏的设计。 通过MenuEditor创建如下菜单,通过以下菜单来控制显示或隐藏功能按键 以“编辑”菜单中“图像变形”中的“图像翻转”为例说明实现用户界面功能键“图像翻转”的显示与隐藏。 实现该功能的程序段如下: functiontuxiangfanzhuan_Callback(hObject,eventdata,handles) %hObjecthandletotuxiangfanzhuan(seeGCBO) %eventdatareserved-tobedefinedinafutureversionofMATLAB %handlesstructurewithhandlesanduserdata(seeGUIDATA) set(handles.uipanel7,'Visible','on'); ifstrcmp(get(gcbo,'Checked'),'on') set(handles.uipanel7,'Visible','on'); set(gcbo,'Checked','off'); set(handles.uipanel7,'Visible','off'); else set(gcbo,'Checked','on'); end 该段程序通过设置“图像翻转”功能键对应的句柄uipanel7中的“Visible”属性的开关来实现该功能键的显示隐藏。其他同理。 4.2图像的读取和保存。 (1)利用“文件”菜单中的“打开”、“保存为…”分别实现图片的读取与保存。 利用matlab中“uigetfile”、“imread”“imshow”实现图像文件的读取与显示: functionopenfile_Callback(hObject,eventdata,handles) %hObjecthandletoopenfile(seeGCBO) %eventdatareserved-tobedefinedinafutureversionofMATLAB %handlesstructurewithhandlesanduserdata(seeGUIDATA) [filename,pathname]=uigetfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'载入图像'); ifisequal(filename,0)|isequal(pathname,0) errordlg('没有选中文件','出错');