资源描述:
《基于MATLAB GUI的数字图像处理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数字图像处理课程论文基于matlabGUI的彩色图像处理技术姓名:学号:班级:一.概述图形用于界面(GraphicalUserInterfaces,GUI)是提供人机交互的工具和方法。GUI是包含图形对象(如窗口、图标、菜单和文本)的用户界面。以某种方式选择或激活这些对象时,通常会引起动作或者发生变化。一个设计优秀的GUI能够非常直观的让用户知道如何操作MATLAB界面,并且了解设计者的开发意图。MATLAB的GUI为开发者提供了一个不脱离MATLAB的开发环境,有助于MATLAB程序的GUI集成。这样可以使开发者不必理会
2、一大堆烦杂的代码,简化程序,但是同样可以实现向决策者提供图文并茂的界面,甚至达到多媒体的效果。可以说MATLAB提供了一个简便的开发环境,可以让开发者快速上手,提高了开发者的工作效率。二.完成任务所谓的GUIDE就是图形用户界面开发环境(GraphicalUserInterfaceDevelopmentEnvironment),它向用户提供了一系列的创建用户图形界面的工具。这些工具大大简化了GUI设计和生成的过程。通过GUIDE完成一下任务:1)用户可以通过菜单栏和按钮进行图像的读取,保存与退出。2)设计图形用户界面,让用
3、户能够通过按钮对图像进行灰度变化变成灰度图。3)通过滑块,用户可以对图像的亮度进行调整5)通过按钮,用户可以查看图片的直方图。6)能对图像加入各种椒盐噪声,并通过滤波法去除。7)通过选项,用户可以查看图片的边缘检测图,界面中可供选择的检测方式有roberts、sobel、prewitt、log、canny五种,当用户选择orginal时显示原图。三.设计过程1.总体设计通过GUIDE向导完成界面功能的布局,根据所需完成功能用户界面布局如下图1。图1用户功能界面2.控件设计及程序实现2.1打开图片,保存图片,退出。拖拽三个个
4、按钮放在合适的位置,双击按钮修改字体大小、颜色等,在functionOpen_Callback(hObject,eventdata,handles)函数下添加如下程序即可完成打开图片控件功能。[filename,filepath]=uigetfile({'*.bmp;*.jpg;*.png;*.jpeg;*.tif;*gif;*Imagefiles'},'');ifisequal(filename,0)
5、
6、isequal(filepath,0)return;endstr=[filepath,filename];x=imre
7、ad(str);axes(handles.axes1)imshow(x);在functionSave_Callback(hObject,eventdata,handles)函数下添加如下程序即可完成保存图片控件功能。globalbnew_f_handle=figure('visible','off');new_axes=copyobj(handles.axes2,new_f_handle);set(new_axes,'units','default','position','default');[filename,path
8、namefileindex]=uiputfile({'*.jpg';'*.bmp';'*.png'},'savepictureas');if~filenamereturnelsefile=strcat(pathname,filename);switchfileindexcase1print(new_f_handle,'-djpeg',file);case2print(new_f_handle,'-dbmp',file);case3print(new_f_handle,'-dpng',file)endenddelete(ne
9、w_f_handle);在functionExit_Callback(hObject,eventdata,handles)函数下添加如下程序即可完成退出控件功能。clccloseallclose(gcf)clear图2.1打开一幅图2.2.灰度变换按钮。先读取一幅图片显示在左边区域,通过按钮将灰度图显示在右边域。在functionRgb2gray_Callback(hObject,eventdata,handles)函数下添加如下代码即可完成灰度变化功能。globalxaxes(handles.axes2)y=rgb2gr
10、ay(x);imshow(y);图2.2灰度变化图2.3图像增强。先读取一幅图片显示在左边区域,通过按钮将灰度图显示在右边域。可通过按钮“图像增强”或者滑块改变改变图像的强度。在functionIncrease_Callback(hObject,eventdata,handles)函数下添加如下代码即可