版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上目录专心-专注-专业第一章 设计任务及要求1.1设计依据在掌握数字图像处理基本算法的基础上,利用MATLAB软件设计具有指定功能的1.2课程设计内容设计一个或包含子界面的图形用户界面,该界面可以读入任意格式的图片并在一个图片窗口中显示,同时包含下拉列表或按钮等控件,用户可以从中选择不同的图像增强功能及参数,例如:对比度调节,灰度变换,图像锐化,图像滤波等功能,读入的图片会根据选择在新的图片窗口中显示不同的处理结果。 1.3课程设计要求(1)要求每个同学独立完成设计任务。(2)课程设计说明书封面格式要求见课程设计说明书格式要求。(3)课程设计的说明书要求简洁、通顺,图像
2、表达内容完整、清楚、规范。(4)课程设计说明书要求:(5)说明题目的设计原理和思路、采用方法及设计流程。(6)可采用图表或文字对图形用户界面各子模块的功能以及各子模块之间的关系做较详细的描述。(7)详细说明MATLAB代码的编写流程。(8)采用图像及文字详细说明各功能的演示结果。(9)界面功能自行增加,涉及的算法越多越好。第2章 设计原理2.1设计题目分析课程设计题目要求运用所学的图像增强技术知识设计一个GUI界面程序,通过界面控件对给定图像完成各种图像增强的功能。功能中包含一系列图像增强方式,有对比度调节,灰度变换,图像锐化,图像滤波等功能。在菜单栏中还有图像的打开及保存等一系列的按钮。2.
3、2 设计原理通过学习数字图像处理这一门学科,以及Matlab这一软件。制作图像处理GUI人机交换界面,以方便使用。设计中,通过界面上的控件操作对图像进行简单的处理,而控件通过后台代码实现各种不同的操作功能。在界面中,人们能看到的控件分为三大类:图像显示模块,功能控件模块,以及菜单栏模块。(1) 图像显示模块:打开原图像即没有处理过的图像会在第一个图像显示窗口中显示,第二个窗口为显示通过一定处理后的图像。 图 1 显示模块(2) 功能控件模块:打开与图像后,通过功能控件对对象进行简单的处理操作,使得通过不同控件操作后的图像在第二个显示框中显示。创建完成界面效果图如下。 图 2 创建完成后的GUI
4、界面 第3章 设计实现3.1 菜单栏编辑 通过Menu Editor创建如下菜单,通过以下菜单来打开图像即保存图像功能按键实现图像的读取与保存。 图 3 菜单栏编辑 图 4 打开文件图像该菜单按钮是通过利用matlab中 “ uigetfile”、“imread” “imshow”实现图像文件的读取与显示:主程序:filename,pathname=uigetfile('*.jpg''*.bmp''*.tif''*.*','载入图像');if isequal(filename,0)|isequal(pathname
5、,0) errordlg('没有选中文件','出错'); return;else file=pathname,filename; global S %设置一个全局变量S,保存初始图像路径,以便之后的还原操作 S=file; x=imread(file); set(handles.axes1,'HandleVisibility','ON'); axes(handles.axes1); imshow(x); set(handles.axes1,'HandleVisibility','OFF'); axe
6、s(handles.axes2); imshow(x); handles.img=x; guidata(hObject,handles);End利用“uiputfile”、“imwrite”函数实现图像文件的保存。 图 5 图像保存主程序如下:function save_Callback(hObject, eventdata, handles)% hObject handle to save (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with h
7、andles and user data (see GUIDATA) sfilename ,sfilepath=uiputfile('*.jpg''*.bmp''*.tif''*.*','保存图像','untitled.jpg'); if isequal(sfilename,sfilepath,0,0) sfilefullname=sfilepath ,sfilename; imwrite(handles.img,sfilefullname); else msgbox('你按了取消键'
8、;,'保存失败'); end3.2 控件及代码的加入3.2.1 GUI窗口的创建 打开 Matlab后,在命令行里面敲入命令“Guide”后按回车键或是在菜单栏“File”、“New”、“Gui”创建GUI界面,然后弹出一个对话框,用鼠标单击“OK”,即可创建一个新的GUI界面。打开界面效果图如下: 图 6 创建GUI界面 图 7 创建GUI界面 3.2.2 控件按钮的创建在创建GUI界面完成后,在界面的左边有一系列的控件按钮,只需要用鼠标点击,然后在界面中再次单击及拖动鼠标即可,大小及位置在界面中更改。这样就可以创建所需要的控件按钮。效果图如下: 图 8 按钮的创建创建按钮完
9、成以后,双击按钮可以更改控件的属性。效果图如下: 图 9 按钮属性窗口3.2.3 控件代码加入创建控件按钮完成以后,鼠标右击控件按钮,选择“View callbacks” “Callback”单击,出现.M文件的程序代码,在控件按钮代码“function pushbutton1_Callback(hObject, eventdata, handles)”的下方加入已经改好的控件功能代码,后单击菜单栏上面的“”即可运行程序。 图 10 .M文件代码通过这样的方法可以加入多个功能控件,实现不同的图像处理功能的GUI界面。 3.4 图像灰度处理 通过界面上的灰度处理控件对彩色图像进行灰度处理,使得原
10、来本是彩色的图片通过处理后在第二个显示框中变成灰色图像。 图 11 灰度处理主要程序:function pushbutton6_Callback(hObject, eventdata, handles)global Taxes(handles.axes2);13 / 50T=getimage;x=rgb2gray(handles.img);imshow(x);handles.img=x;guidata(hObject,handles);该程序是利用rgb2gray(X)函数对其他图像进行灰度图像的转化。3.5 亮度调节通过“载入图像”控件或是菜单栏中的“打开”菜单将图像在GUI界面上的第一个图
11、像显示框中打开,然后按下控件“亮度调节”,会弹出一个所需要调节亮度的值的对话框,在里面输入数值以后,在第二个显示框中会显示出通过“亮度调节”控件处理后的图片。 图 12 输入亮度值 图 13 亮度对比前后主要程序:function pushbutton5_Callback(hObject, eventdata, handles)global Taxes(handles.axes2);T=getimage;prompt='亮度调节'defans='1'p=inputdlg(prompt,'input',1,defans);9 / 50p1=str2
12、num(p1);y=imadjust(handles.img, , ,p1); imshow(y);handles.img=y;guidata(hObject,handles);程序通过:defans='1'p=inputdlg(prompt,'input',1,defans);定义亮度对话框,而通过函数语句p1=str2num(p1);y=imadjust(handles.img, , ,p1);对图像进行亮度的转换。3.6 底片处理通过“载入图像”控件或是菜单栏中的“打开”菜单将图像在GUI界面上的第一个图像显示框中打开,然后按下控件“底片处理”按钮操作,对
13、图像进行图像的底片处理,效果图如下。 图 14 底片处理前后对照主程序:function pushbutton9_Callback(hObject, eventdata, handles)axes (handles.axes2);T=getimage;f=imcomplement(handles.img); %图像取反imshow(f);handles.img=f;guidata(hObject,handles);程序主要通过函数f=imcomplement(handles.img); 实现图像的取反功能。 3.7 直方图均衡化 直方图均衡化的基本思想就是把原始图像不均衡的直方图变换为均匀的分
14、布,这样就增加了灰度值的动态范围,从而达到增强图像整体对比度的效果。经过GUI界面处理前后的照片对比效果如下: 图 15 直方图均衡化主程序:set(handles.axes2,'HandleVisibility','ON');axes(handles.axes2);h=histeq(handles.img); %直方图均衡化imshow(h);第4章 结果分析及总结 通过几周的时间学习GUI界面的制作以及所学课程知识的再次学习,完成了此次课程设计。在过程当中,软件测试基本成功,完成课题所要求的图像增强功能的实现。但一些功能只支持灰度图像的处理。还有的功能没有实
15、现,我自己认为是程序有错误,但是检查很久都没有检查出来,还有一个很大的问题就是当程序运行以后回头在看控件代码时,总是会有乱码出现,在程序当中改过来以后还是会自动的改为乱码,这一点也是我没有明白的原因。 通过这次课程设计,使我对 matlab 的使用有了进一步的了解和熟悉。当我第一次拿到此次的课题时,感到有些无所适从。虽然,曾经学习过matlab 的课程,但由于对 matlab 的学习更多的只是停留在理论上的学习,在课时内的试验也只是简单的基础性试验, 所以对 matlab 实际运用不是很熟练。虽然对课题感到很懵懂,但是通过在网上学习视频以后,我开始找到了解决问题的路径。我选择的是“利用 mat
16、lab 的 GUI 程序设计一个简单实用的图像处理程序”这一课题。本课题的重点是句柄的使用、GUI 的使用以及 matlab 中相关图像处理函数使用。为此,我利用课余时间,重新复习了 matlab 教材,专门借阅了利用 matlab 进行图像处理的相关教程,通过索引网络上的相关资料,为课设做了较为充分的准备。在参考了相关材料及源程序,我对自己要做的课设内容有了进一步的了解,并对 matlab 的使用有了更深的体会。 总体来说,此次的课程设计,还是较为满意的。它不但鞭策着我去巩固 matlab 的基础理论知识,还提高了我对 matlab 的实际操作运用,使得理论与实践相结合,为进一步学习 matlab 打下坚实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高铁站物业管理人员聘用合同
- 高等教育讲师劳动合同
- 电力工程脚手架租赁合同样本
- 环卫清洁挖掘机租赁包月合同
- 石油开采区给水工程安装合同
- 养猪场建筑节能工程合同
- 水利工程环境保护水务施工合同
- 养殖场洗浴服务租赁合同
- 油漆作业现场管理制度
- 墙纸施工合同养老院温馨家园
- 社区工作者经典备考题库(必背300题)
- 患者沟通技巧课件
- 国家开放大学一网一平台电大《可编程控制器应用实训》形考任务3终结性考试题库及答案
- 高三数学《专题十五数学建模》课件
- 四川省工程款支付担保办法
- 小学二年级数学上册看图列式计算试题(精选题)
- 2022年会计专业申请留学申请书
- 义务(应急)消防队成员花名册
- 中央空调维保工作实施方案
- (高清版)外墙外保温工程技术标准JGJ144-2019
- 未成年人需办银行卡证明(模板)
评论
0/150
提交评论