《数字图像处理GUI界面设计(共16页).doc》由会员分享,可在线阅读,更多相关《数字图像处理GUI界面设计(共16页).doc(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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,0) errordlg(没有选中文件,出错); return;else file=pathn
5、ame,filename; global S %设置一个全局变量S,保存初始图像路径,以便之后的还原操作 S=file; x=imread(file); set(handles.axes1,HandleVisibility,ON); axes(handles.axes1); imshow(x); set(handles.axes1,HandleVisibility,OFF); axes(handles.axes2); imshow(x); handles.img=x; guidata(hObject,handles);End利用“uiputfile”、“imwrite”函数实现图像文件的保存。
6、 图 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 handles and user data (see GUIDATA) sfilename ,sfilepath=uiputfile(*.jpg;*.bmp;*.tif;*.*,保存图像,untitled.jpg);
7、 if isequal(sfilename,sfilepath,0,0) sfilefullname=sfilepath ,sfilename; imwrite(handles.img,sfilefullname); else msgbox(你按了取消键,保存失败); end3.2 控件及代码的加入3.2.1 GUI窗口的创建 打开 Matlab后,在命令行里面敲入命令“Guide”后按回车键或是在菜单栏“File”、“New”、“Gui”创建GUI界面,然后弹出一个对话框,用鼠标单击“OK”,即可创建一个新的GUI界面。打开界面效果图如下: 图 6 创建GUI界面 图 7 创建GUI界面 3
8、.2.2 控件按钮的创建在创建GUI界面完成后,在界面的左边有一系列的控件按钮,只需要用鼠标点击,然后在界面中再次单击及拖动鼠标即可,大小及位置在界面中更改。这样就可以创建所需要的控件按钮。效果图如下: 图 8 按钮的创建创建按钮完成以后,双击按钮可以更改控件的属性。效果图如下: 图 9 按钮属性窗口3.2.3 控件代码加入创建控件按钮完成以后,鼠标右击控件按钮,选择“View callbacks” “Callback”单击,出现.M文件的程序代码,在控件按钮代码“function pushbutton1_Callback(hObject, eventdata, handles)”的下方加入已
9、经改好的控件功能代码,后单击菜单栏上面的“”即可运行程序。 图 10 .M文件代码通过这样的方法可以加入多个功能控件,实现不同的图像处理功能的GUI界面。 3.4 图像灰度处理 通过界面上的灰度处理控件对彩色图像进行灰度处理,使得原来本是彩色的图片通过处理后在第二个显示框中变成灰色图像。 图 11 灰度处理主要程序:function pushbutton6_Callback(hObject, eventdata, handles)global Taxes(handles.axes2);13 / 50T=getimage;x=rgb2gray(handles.img);imshow(x);han
10、dles.img=x;guidata(hObject,handles);该程序是利用rgb2gray(X)函数对其他图像进行灰度图像的转化。3.5 亮度调节通过“载入图像”控件或是菜单栏中的“打开”菜单将图像在GUI界面上的第一个图像显示框中打开,然后按下控件“亮度调节”,会弹出一个所需要调节亮度的值的对话框,在里面输入数值以后,在第二个显示框中会显示出通过“亮度调节”控件处理后的图片。 图 12 输入亮度值 图 13 亮度对比前后主要程序:function pushbutton5_Callback(hObject, eventdata, handles)global Taxes(handle
11、s.axes2);T=getimage;prompt=亮度调节;defans=1;p=inputdlg(prompt,input,1,defans);9 / 50p1=str2num(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
12、 底片处理通过“载入图像”控件或是菜单栏中的“打开”菜单将图像在GUI界面上的第一个图像显示框中打开,然后按下控件“底片处理”按钮操作,对图像进行图像的底片处理,效果图如下。 图 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
13、(handles.img); 实现图像的取反功能。 3.7 直方图均衡化 直方图均衡化的基本思想就是把原始图像不均衡的直方图变换为均匀的分布,这样就增加了灰度值的动态范围,从而达到增强图像整体对比度的效果。经过GUI界面处理前后的照片对比效果如下: 图 15 直方图均衡化主程序:set(handles.axes2,HandleVisibility,ON);axes(handles.axes2);h=histeq(handles.img); %直方图均衡化imshow(h);第4章 结果分析及总结 通过几周的时间学习GUI界面的制作以及所学课程知识的再次学习,完成了此次课程设计。在过程当中,软件
14、测试基本成功,完成课题所要求的图像增强功能的实现。但一些功能只支持灰度图像的处理。还有的功能没有实现,我自己认为是程序有错误,但是检查很久都没有检查出来,还有一个很大的问题就是当程序运行以后回头在看控件代码时,总是会有乱码出现,在程序当中改过来以后还是会自动的改为乱码,这一点也是我没有明白的原因。 通过这次课程设计,使我对 matlab 的使用有了进一步的了解和熟悉。当我第一次拿到此次的课题时,感到有些无所适从。虽然,曾经学习过matlab 的课程,但由于对 matlab 的学习更多的只是停留在理论上的学习,在课时内的试验也只是简单的基础性试验, 所以对 matlab 实际运用不是很熟练。虽然
15、对课题感到很懵懂,但是通过在网上学习视频以后,我开始找到了解决问题的路径。我选择的是“利用 matlab 的 GUI 程序设计一个简单实用的图像处理程序”这一课题。本课题的重点是句柄的使用、GUI 的使用以及 matlab 中相关图像处理函数使用。为此,我利用课余时间,重新复习了 matlab 教材,专门借阅了利用 matlab 进行图像处理的相关教程,通过索引网络上的相关资料,为课设做了较为充分的准备。在参考了相关材料及源程序,我对自己要做的课设内容有了进一步的了解,并对 matlab 的使用有了更深的体会。 总体来说,此次的课程设计,还是较为满意的。它不但鞭策着我去巩固 matlab 的基
16、础理论知识,还提高了我对 matlab 的实际操作运用,使得理论与实践相结合,为进一步学习 matlab 打下坚实的基础;同时,在实践的工程中,也让我体会到一种努力付出并得到回报的满足感觉。第5章 参考文献1 张德丰,数字图像处理MATLAB详解J. 电子工业出版社2010.7(MATLAB仿真与应用系列丛书)2 朱来东,廉小亲,江远志. 小波变换在信号降噪中的应用及M A T L A B 实现 J . 北京工商大学学报( 自然科学版),2009,27(2):46-49.3 郑治真, 沈萍, 杨选辉, 等1 小波变换及其MA TLAB 工具的应用M 1 北京: 地震出版社, 2001.4 J. 第6章 附录程序: