您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 基于MATLAB-GUI的数字图像处理
数字图像处理课程论文基于matlabGUI的彩色图像处理技术姓名:学号:班级:一.概述图形用于界面(GraphicalUserInterfaces,GUI)是提供人机交互的工具和方法。GUI是包含图形对象(如窗口、图标、菜单和文本)的用户界面。以某种方式选择或激活这些对象时,通常会引起动作或者发生变化。一个设计优秀的GUI能够非常直观的让用户知道如何操作MATLAB界面,并且了解设计者的开发意图。MATLAB的GUI为开发者提供了一个不脱离MATLAB的开发环境,有助于MATLAB程序的GUI集成。这样可以使开发者不必理会一大堆烦杂的代码,简化程序,但是同样可以实现向决策者提供图文并茂的界面,甚至达到多媒体的效果。可以说MATLAB提供了一个简便的开发环境,可以让开发者快速上手,提高了开发者的工作效率。二.完成任务所谓的GUIDE就是图形用户界面开发环境(GraphicalUserInterfaceDevelopmentEnvironment),它向用户提供了一系列的创建用户图形界面的工具。这些工具大大简化了GUI设计和生成的过程。通过GUIDE完成一下任务:1)用户可以通过菜单栏和按钮进行图像的读取,保存与退出。2)设计图形用户界面,让用户能够通过按钮对图像进行灰度变化变成灰度图。3)通过滑块,用户可以对图像的亮度进行调整5)通过按钮,用户可以查看图片的直方图。6)能对图像加入各种椒盐噪声,并通过滤波法去除。7)通过选项,用户可以查看图片的边缘检测图,界面中可供选择的检测方式有roberts、sobel、prewitt、log、canny五种,当用户选择orginal时显示原图。三.设计过程1.总体设计通过GUIDE向导完成界面功能的布局,根据所需完成功能用户界面布局如下图1。图1用户功能界面2.控件设计及程序实现2.1打开图片,保存图片,退出。拖拽三个个按钮放在合适的位置,双击按钮修改字体大小、颜色等,在functionOpen_Callback(hObject,eventdata,handles)函数下添加如下程序即可完成打开图片控件功能。[filename,filepath]=uigetfile({'*.bmp;*.jpg;*.png;*.jpeg;*.tif;*gif;*Imagefiles'},'');ifisequal(filename,0)||isequal(filepath,0)return;endstr=[filepath,filename];x=imread(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,pathnamefileindex]=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(new_f_handle);在functionExit_Callback(hObject,eventdata,handles)函数下添加如下程序即可完成退出控件功能。clccloseallclose(gcf)clear图2.1打开一幅图2.2.灰度变换按钮。先读取一幅图片显示在左边区域,通过按钮将灰度图显示在右边域。在functionRgb2gray_Callback(hObject,eventdata,handles)函数下添加如下代码即可完成灰度变化功能。globalxaxes(handles.axes2)y=rgb2gray(x);imshow(y);图2.2灰度变化图2.3图像增强。先读取一幅图片显示在左边区域,通过按钮将灰度图显示在右边域。可通过按钮“图像增强”或者滑块改变改变图像的强度。在functionIncrease_Callback(hObject,eventdata,handles)函数下添加如下代码即可完成图像增强按钮globalxx1=imadjust(x,[0.30.7],[01],0.5);axes(handles.axes2)imshow(x1);图2.3.1图像增强在functionUntitled_4_Callback(hObject,eventdata,handles)函数下添加如下代码即可完成图像增强滑块globalxvalue=get(handles.slider,'Value');x1=imadjust(x,[0.30.7],[01],'value');axes(handles.axes2)imshow(x1);图2.3.2改变滑块图像2.4噪声抑制按钮通过打开图片按钮打开一幅图片显示在左边区域,当用户点击噪声抑制时左边图显示家了椒盐噪声的图,右边区域显示噪声滤除后的图。在functionNoise_Callback(hObject,eventdata,handles)函数下添加如下代码即可完成。globalxglobalpy=rgb2gray(x);p=imnoise(y,'salt&pepper',0.1);%加10%的椒盐axes(handles.axes1);imshow(p);g=medfilt2(p);axes(handles.axes2);imshow(g);图2.4噪声抑制效果图2.5统计直方图按钮先读取一幅图片显示在左边区域,通过按钮将灰度图显示在右边域。用户通过该按钮显示图片的统计直方图。在functionCompression_Callback(hObject,eventdata,handles)函数下添加如下代码即可完成。globalxh=rgb2gray(x);axes(handles.axes2);imhist(h);图2.5直方图显示2.6边缘检测选择先读取一幅图片显示在左边区域,通过按钮将灰度图显示在右边域。用户选择选择不同的边缘检测方式,右侧显示不同的边缘图。在functionSlectchangeFuc_SelectionChangeFcn(hObject,eventdata,handles)函数下添加如下代码即可实现。globalxglobalbstr=get(hObject,'string');axes(handles.axes2);y=rgb2gray(x);dx=double(y);switchstrcase'Roberts'R=edge(dx,'roberts');imshow(R);case'Sobel'S=edge(dx,'sobel');imshow(S);case'Prewitt'P=edge(dx,'prewitt');imshow(P);case'Log'L=edge(dx,'log');imshow(L);case'Canny'C=edge(dx,'canny');imshow(C);case'Orginal'imshow(y);end图2.6.1Robrets检测图2.6.2Soble检测图2.6.3Canny检测图2.6.4Log检测图2.6.5Perwitt检测四.总结在完成本次课程论文的过程中,在对数字图像处理中的理论与实现后的效果相结合的同时,使我对数字图像处理有了更进一步的理解,本次论文只是实现了图像处理中的一些简单的要求,更深层次的要求需要对理论有非常好的掌握,并不是简简单单的可以调用函数可以实现的。与此同时,本次课程结课论文让我还对matlab有了进一步的理解,本次论文是基于matlabgui完成对图像的各种处理,用户在一个可视化的界面上进行简简单单的点击点击鼠标即可完成对图像的各种处理,并能把处理后的图像保存到本地,这样的编程效果是几乎所有人都愿意接受的,不用在去面对一行行的程序代码,是用户所希望看到的结果。由于是第一次使用matlabgui进行编程,使用任何一个功能的时候都需要在网上查找资料,可以说这次作业是在网上找资料一点点累积起来的,在这个过程中还是遇到了各种各样的问题,有些问题完成此次作业后仍然没有解决。五.参考文献[1]许录平《数字图像处理》[2]《MATLAB实践课程设计》百度文库[3]小悠《基于MATLABGUI的数字图像处理系统》百度文库[4]技术驻虫《MATLABGUI平台》微博
本文标题:基于MATLAB-GUI的数字图像处理
链接地址:https://www.777doc.com/doc-5717822 .html