Matlab 的可视化界面设计_第1页
Matlab 的可视化界面设计_第2页
Matlab 的可视化界面设计_第3页
Matlab 的可视化界面设计_第4页
Matlab 的可视化界面设计_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Matlab 的可视化界面设计一个可发布的应用程序通常都需要具备一个友好的图形界面,这样用户不需要知道应用程序究竟是怎样执行各种命令的, 而只需要了解可见界面组件的使用方法就可以通过与界面交互使指定行为得以正确执行。 MATLAB可视化界面的设计, 一般有两种方法, 一是直接通过编辑M脚本文件产生GUI, 二是通过MATLAB图形用户界面开发环境GUIDE(Graphical User Interface Development Environment)来形成相应文件。本文利用 MATLAB的GUI程序设计一个简单实用的图像处理程序。该程序应具备图像处理的常用功能,以满足用户的使用。现设计程序

2、有以下基本功能:1)图像的读取和保存。2)设计图形用户界面,让用户能够对图像进行缩放、旋转、剪裁,显示和对比变换前后的图像。3)设计图形用户界面,让用户能够用鼠标选取图像感兴趣区域,显示所选像素点的数据值,以及图像轮廓图,并绘制直方图。4)实现图像锐化。5)图像直方图统计和直方图均衡,要求显示直方图统计,比较直方图均衡后的效果。6)能对图像加入各种噪声,并通过几种滤波算法实现去噪并显示结果。一、认识图形用户界面(GUI)用MATLAB对图像进行处理是当前科技领域的一个重要的课题,它采用的是用一组有序的灰度或彩色数据元素构成图像,数组的每一个元素对应于图像的一个像素值。这样MATLAB就可以利用

3、其强大的矩阵计算功能实现对图像的数字处理。本次设计的系统主要是利用MATLAB所提供的图形用户界面(GUI),实现一个可视的面向对象的操作界面。1.1设计原则由于要求不同,设计出来的界面也就千差万别。但是,自从人们开始设计图形界面以来,界面设计的评判标准却没有太大的变化。简单说来,一个好的界面应遵从以下三个原则:简单性、一致性、习常性。(1)简单性设计界面时,应力求简洁、直接、清晰地体现出界面的功能和特征。那些可有可无的功能应尽量删去,以保持界面的清洁。(2)一致性所谓一致性包含两层意义:一是自己开发的界面风格要尽量一致;二是新设计的界面要与其他已有的界面风格不要截然相左。这是因为用户在初次使

4、用新界面时,总是习惯于凭借经验进行试探。(3)习常性设计界面时,应尽量使用人们所熟悉的标志和符号。用户可能并不了解界面的具体含义及操作方法,但也可以根据熟悉标志做出正确猜测,自学入门。1.2窗口界面的实现该系统界面的设计主要是利用MATLAB所提供的GUI(IGraphUser Interface)向导设计控件而完成的,该向导可以实现多种控件的设计,给用户提供了一种友好的交互方式,同时也给操作带来很多方便。图形用户界面GUI是包含图形对象(如图形窗口、菜单、控件、文本)的用户界面,用户以某种方式选择或者击活这些对象会发生变化或引起动作。(1)启动GUI的方法启动图形用户界面的方法有很多种,例如

5、可以利用工具栏上的命令按钮,也可以采用菜单和命令的方式。在本人设计的案例中采用的是命令方式:在命令窗口直接输入guide命令,弹出的窗口如图所示:GUI启动界面在弹出的guide quick ate new gui选项卡里面的start窗口中选择creBlank GUI选项,这样就可以进入图形用户界面来设计我们的系统静态界面。 Guide界面就是Guide提供的图形界面设计工具集,在此界面下就可以利用控件组件、文本菜单、排列工具等对系统的界面进行设计。二、具体设计及实现步骤静态界面设计有八个标签,具体为文件、编辑、图像分析、图像调整、图像平滑、图像锐化、图像高级处理、小波变换。并且每个标签下有

6、自己对应要实现的操作。界面的初始设计和初始运行界面如下。 静态界面运行界面图像编辑标签下包含图像缩放、图像旋转、图像剪裁、格式转换以及纹理映射。2.1.1图像缩放 通过imresize(X,n,mode)函数对图像X进行放大或者缩小。N放大缩小倍数,mode为采用的方式。 通过处理后可发现保存的图片的比原图放大了(缩小了)。实现程序段如下:function Untitled_10_Callback(hObject, eventdata, handles)% hObject handle to Untitled_10 (see GCBO)% eventdata reserved - to be

7、defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)clearI=imread('heart.tif'); subplot(2,2,1),imshow(I);title('原始图像')X1=imresize(I,0.1,'nearest');subplot(2,2,2),imshow(X1,);title('最近邻插值法实现图像缩放')X2=imresize(I,0.1,'bilin

8、ear');subplot(2,2,3),imshow(X2,);title('双线性插值法实现图像缩放')X3=imresize(I,0.1,'bicubic');subplot(2,2,4),imshow(X3,);title('双立方插值法实现图像缩放')2.12图像裁剪 用鼠标选取图像感兴趣区域,双击选择区域以显示。通过imcrop(x)函数来实现对图片某一区域的截取,截取的图片在右框中显示。实现程序段如下:function Untitled_13_Callback(hObject, eventdata, handles)% hO

9、bject handle to Untitled_13 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)clearI=imread('heart.tif');%subplot(1,1,1),imshow(I);title('请选择要裁剪的区域,并双击选定区域以显示');msgbox('请选择要裁剪的区域,并双击选定区域以显示'

10、,'提示信息');waitforbuttonpress;clf;I2=imcrop(I);closesubplot(1,2,1),imshow(I);title('原始heartRGB图像');subplot(1,2,2),imshow(I2);title('裁剪后的heartRGB图像');2.2.1图像调整图像调整标签下包含直方图均衡化、去背景、阈值化、灰度变换。通过histeq(X)函数实现直方图均衡。因为此函数只能对灰度图像进行直方图均衡。故应先将彩图转为灰度图像。 直方图均衡实现程序段如下:function Untitled_36_Ca

11、llback(hObject, eventdata, handles)% hObject handle to Untitled_36 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)clearI=imread('heart.tif');gray=rgb2gray(I);J=histeq(gray,32);counts,x=imhist(J);I=imread

12、('heart.tif');Q=rgb2gray(I);subplot(2,2,1),imshow(Q);title('原始heart灰度图像');subplot(2,2,3),imhist(Q);title('原始heart灰度图像的直方图');M=histeq(Q,counts);subplot(2,2,2),imshow(M);title('直方图规定化后的heart灰度图像');subplot(2,2,4),imhist(M);title('直方图均衡化成32个灰度级后的heart灰度图像直方图');axi

13、s square2.2.1图像平滑图像平滑标签下包含加噪声、中值滤波、低通滤波,加入各种噪声,并通过几种滤波算法实现去噪。加入噪声。通过imnoise(I,type,parameters)来加入各种噪声。实现程序段如下:function Untitled_25_Callback(hObject, eventdata, handles)% hObject handle to Untitled_25 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with

14、 handles and user data (see GUIDATA)I=imread('heart.tif');V=0.02;noise1=imnoise(I,'gaussian',0,V);%加高斯噪声subplot(2,2,1),imshow(noise1);title('加高斯噪声')noise=0.1*randn(size(I);%加随机噪声noise2=imadd(I,im2uint8(noise);subplot(2,2,2),imshow(noise2);title('加随机噪声')noise3=imnoise(

15、I,'salt & pepper', 0.02);subplot(2,2,3),imshow(noise3);title('加椒盐噪声')noise4=imnoise(I,'speckle',0.06);subplot(2,2,4),imshow(noise4);title('加乘性噪声')滤除噪声(椒盐噪声),采用中值滤波后实现程序段如下:function Untitled_26_Callback(hObject, eventdata, handles)% hObject handle to Untitled_26 (s

16、ee GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)I=imread('gray.bmp');I1=imnoise(I,'salt & pepper',0.06);I2=double(I1)/255;J2=medfilt2(I2,3 3);subplot(1,2,1),imshow(I1);title('加椒盐噪声后的图像')

17、subplot(1,2,2),imshow(J2);title('中值滤波后的图像')2.2.2图像锐化 图像锐化标签下包含用梯度法实现图像锐化、Sobel算子滤波、拉式算子滤波。 程序采用fspecial函数用于建立预定义的滤波算子,其语法格式为:h=fspecial(type),其中type指定算子类型,这里选用sobel算子。实现程序段如下:function Untitled_44_Callback(hObject, eventdata, handles)% hObject handle to Untitled_44 (see GCBO)% eventdata reser

18、ved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)clearI=imread('gray.bmp');H=fspecial('sobel');subplot(1,2,1),imshow(I);title('原始heart灰度图像');J=filter2(H,I);subplot(1,2,2),imshow(J);title('Sobel算子对图像锐化结果');2.3图像边缘检测 在医学图像的目标识别和三维显示过程中,边缘检测是十分重要的一环,检测的准确性将直接影响到后续的治疗。该数字图像软件边缘检测算子包含Sobel算子、Canny算子、Prewitt算子、Log算子。 实现程序段如下:function Untitled_41_Callback(hObject, eventdata, handles)% hObject handle to Untitled_41 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structur

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论