图像用户界面,GUI,作为包含了使用户能执行交互式任务的设备或组件图像显示,在许多程序设计软件中都是不可缺少的功能。这次,我们就来了解下MATLAB中的GUI。
首先,先谈下GUI基础,也是今后操作必须熟悉的知识。在MATLAB中,每一个图形对象都会有唯一 一个句柄和一组定义图形对象外观的属性。句柄,可以理解成是图形“身份证”,见它犹如见本人。用户能够使用这些句柄图像控制图像的行为和外观。(句柄图像今后的博客会谈及)。图形对象包括了Uimenu和Uicontrol对象,以及图形、坐标轴、文本及子对象。
看那么多文字,难免会厌烦,先让我们看下GUI的经典应用吧:
对于传递函数G=1/s.^2+2*s*zeta+1的归一化二阶系统,制作绘制该系统单 位阶跃响应的图形用户界面
1)这是打开的界面
2)
3)
4)点击grid on按钮,会生成网格线
clc clear all; %产生图形窗口和坐标轴 clf reset H=axes('unit','normalized','position',[0,0,1,1],'visible','off'); set(gcf,'currentaxes',H); str='\fontname{隶书}归一化二阶系统的阶跃响应曲线'; text(0.12,0.93,str,'fontsize',13); h_fig=get(H,'parent'); set(h_fig,'unit','normalized','position',[0.1,0.2,0.7,0.4]); h_axes=axes('parent',h_fig,'unit','normalized','position',[0.1,0.15,0.55,0.7], 'xlim',[0 15],'ylim',[0 1.8],'fontsize',8); %在坐标右轴生成静态文本框和编辑框 h_text=uicontrol(h_fig,'style','text','unit','normalized','position',... [0.67,0.73,0.25,0.14],'horizontal','left','string',... {'输入阻尼比系数','zeta='}); h_edit=uicontrol(h_fig,'style','edit','unit','normalized','position',... [0.67,0.59,0.25,0.14],'horizontal','left','callback',... ['z=str2num(get(gcbo,''string''));',... 't=0:0.1:15;',... 'for k=1:length(z);',... 's2=tf(1,[1 2*z(k) 1]);',... 'y(:,k)=step(s2,t);',... 'plot(t,y(:,k));',... 'if (length(z)>1),hold on,end,',... 'end;','hold off,']); %生成坐标网格按钮 h_push1=uicontrol(h_fig,'style','push','unit','normalized','position',... [0.67,0.37,0.12,0.15],'string','grid on','callback','grid on'); h_push2=uicontrol(h_fig,'style','push','unit','normalized','position',... [0.67,0.15,0.12,0.15],'string','grid off','callback','grid off');
接下来,就进入到正题,我们这次就先了解下“菜单”。
1.菜单的布置
建立菜单项的语法格式:hm=uimenu(Hx_parent,'PropertyName',PropertyValue,...)
hm——菜单项句柄 Hx_parent——默认父辈对象的句柄
Uimenu对象中最重要的属性是:'Label'和'Callback'。
'Label'属性值是菜单条和下拉菜单项上的文本字符串,以确认菜单项。
'Callback'属性值是MATLAB字符串,当选中菜单项时,它传给eval,用以执行。
删除或恢复所有标准菜单:
h=figure(1); set(h,'Menubar','none'); %删除 set(h,'Menubar','figure'); %恢复
我们就看下最简单的菜单实例吧,通过下面的代码认识创建的过程:
clc h=figure(1); set(h,'Menubar','none'); hm_ex=uimenu(gcf,'Label','Example'); %Example菜单下的子菜单 hm_exgrid=uimenu(hm_ex,'Label','Grid'); hm_exview=uimenu(hm_ex,'Label','View'); hm_box=uimenu(hm_ex,'Label','Axis Box','CallBack',[... 'if strcmp(get(gca,''Box''),''on''),',... 'set(gca,''Box'',''off''),',... 'set(hm_box,''Checked'',''off''),',... 'else,',... 'set(gca,''Box'',''on''),',... 'set(hm_box,''Checked'',''on''),',... 'end']); %View菜单下的子菜单 hm_ex2D=uimenu(hm_exview,'Label','2_D'); hm_ex3D=uimenu(hm_exview,'Label','3_D'); %第二个顶层菜单Close hm_close=uimenu(gcf,'Label','Close'); hm_clfig=uimenu(hm_close,'Label','Close Figure','CallBack','Close'); hm_clmenu=uimenu(hm_close,'Label','Remove Menu');
‘Label’后面跟的是该菜单的名字,而‘CallBack’后面跟的是回调字符串,关于回调属性后面再详说。
如图,我们创建了两个菜单Example和CLose,然后Example下面还有三个子菜单,而View菜单下面也还有两个子菜单。
2)定义系统快捷键(在X Window系统)
hm_top=uimenu('Label','Example'); uimenu(hm_top,'Label','&Grid');
——定义了键盘上G为快捷键。注&后面跟的字母即为快捷键!
注意:不可以为顶层菜单定义快捷键···
3)菜单的外观
三个属性值:'Position'、'Checked'和'Separator'
Position
改变菜单位置:set(hm_1,'Position',1);
得到菜单位置:get(hm_2,'Position');
Checked——使校验标记出现在菜单项标志的左边,默认'off'
改变菜单项标志本身:
例:
hm_box=uimenu(hm_ex,'Label','Axis Box','CallBack',[... 'if strcmp(get(gca,''Box''),''on''),',... 'set(gca,''Box'',''off''),',... 'set(hm_box,''Label'',''Set Box on''),',... 'else,',... 'set(gca,''Box'',''on''),',... 'set(hm_box,''Label'',''Set Box off''),',... 'end']);
选中Axis Box后,右边会出现打钩的标记!
Separator——将下拉菜单分成局部组
set(hm_box,'Separator','on');
菜单的颜色控制:
'BackGroundColor'控制填充菜单背景的颜色
'ForeGroundColor'确定菜单项文本的颜色,默认黑色
%第三个顶层菜单Color hm_color=uimenu(gcf,'Label','Color'); hm_submenu1=uimenu(hm_color,'Label','Red','CallBack','set (gcf,''Color'',''Red'')'); hm_submenu2=uimenu(hm_color,'Label','Blue','CallBack','set (gcf,''Color'',''Blue'')');
菜单项去能(菜单可见但不能被选择)
set(hm,''Enable'',''off'');
关于菜单的回调属性,下次和句柄图形一起说明。
相关推荐
第4部分“GUI界面编程”,包括第27~第29章,从程序设计、图形用户界面设计入手讲解了软件编程方面的问题,最后给出了图像处理软件及界面编程的实际例子。 本书写作结构明晰,图文并茂,案例丰富,具有很强的可操作...
MATLAB GUI(Graphical User Interface)图像处理界面设计是一种强大的工具,它允许用户通过图形化的交互方式对图像进行各种操作。在本项目中,我们主要关注的是如何利用MATLAB构建一个用户友好的图像处理界面,以及...
MATLAB 图像用户界面设计 MATLAB 图像用户界面设计是 MATLAB 中的一种重要设计模式,旨在帮助用户快速构建图形用户界面。该设计模式提供了多种控件和工具,方便用户根据实际需求设计和实现图形用户界面。 11.1 ...
本书第1部分“基础篇”,包括第1~第10章,对MATLAB安装试验基本问题、MATLAB图像处理的特点及其学习方法、数字图像的基本知识进行了概述。从图形绘制开始,层层深入MATLAB的二维和三维图像绘制功能,此外还介绍了...
1. "matlab图像GUI":表明该工具包包含用MATLAB构建的图形用户界面,用户可以通过点击和选择菜单选项来进行图像处理。 2. "matlab图像处理":这是对整个工具包的概括,表示它是基于MATLAB的图像处理解决方案。 3. ...
本书第1部分“基础篇”,包括第1~第10章,对MATLAB安装试验基本问题、MATLAB图像处理的特点及其学习方法、数字图像的基本知识进行了概述。从图形绘制开始,层层深入MATLAB的二维和三维图像绘制功能,此外还介绍了...
而在界面编程方面,MATLAB的GUIDE(图形用户界面设计环境)则可以帮助用户创建交互式的应用程序。 本书的核心知识点主要包括以下几个部分: 1. **MATLAB基础**:介绍MATLAB的基本语法、数据类型、运算符、控制结构...
本资源"基于Matlab图像处理GUI源代码"提供了一种图形用户界面(GUI)的方式,使得非编程背景的用户也能方便地进行图像操作。以下将详细介绍其中涉及的主要知识点: 1. **MATLAB图像处理基础**:MATLAB提供了大量的...
9. MATLAB图形用户界面(GUI)编程:MATLAB提供了GUIDE工具,使得创建交互式界面变得简单。通过设计按钮、文本框、滑块等控件,可以构建出直观易用的应用程序。 10. 多维数组和矩阵操作:MATLAB强大的数组运算能力...
总结来说,"基于matlab图像处理系统"的这个项目是通过创建MATLAB GUI来实现图像的超分辨率重建,涉及到图像处理的基本概念、GUI编程技巧以及高级的超分辨率理论与技术。通过这个项目,学习者可以深入理解图像处理...
《MATLAB图像处理与界面编程宝典》是一本深度探讨MATLAB在图像处理和界面编程领域的专著。MATLAB(Matrix Laboratory)是一款强大的数学计算软件,尤其在数值分析、符号计算、数据可视化以及图像处理等方面有着广泛...
《MATLAB图像处理与界面编程宝典及代码》是一份深度探讨MATLAB在图像处理和用户界面设计领域的综合资源包。这个压缩文件包含了丰富的学习资料和实战代码,旨在帮助用户提升MATLAB技能,特别是在图像分析和创建交互式...
本书第1部分“基础篇”,包括第1~第10章,对MATLAB安装试验基本问题、MATLAB图像处理的特点及其学习方法、数字图像的基本知识进行了概述。从图形绘制开始,层层深入MATLAB的二维和三维图像绘制功能,此外还介绍了...
在MATLAB中,图形用户界面(GUI)是一种交互式编程方式,它允许用户与程序进行直接的视觉交互,而不仅仅是通过命令行。本教程聚焦于使用MATLAB GUI进行图像处理,包括几何变换和函数变换。MATLAB GUI为图像处理提供...
该项目基于matlab语言实现,带UI界面和测试数据图片及代码,在matlab2014a上亲测可以直接运行。主要运用数字图像处理的相关知识,滤波、去噪、分割等技术。适用于数字图像处理学习者、matlab研究者、计算机视觉入门...
基于matlab的图像处理技术及用户界面设计.pdf基于matlab的图像处理技术及用户界面设计.pdf基于matlab的图像处理技术及用户界面设计.pdf基于matlab的图像处理技术及用户界面设计.pdf基于matlab的图像处理技术及用户...
在Matlab中设计图形用户界面(GUI)可以极大地提高工作效率,因为它允许用户通过直观的按钮和菜单而非代码来执行命令。在这个特定的项目中,开发者可能创建了多个GUI组件,如按钮、滑块、文本框等,以实现对图像的...
MATLAB图形用户界面(GUI)制作 MATLAB图形用户界面(GUI)制作是指使用MATLAB编程语言创建图形用户界面的过程。图形用户界面是指计算机程序与用户之间的交互界面,通过图形化的方式来与用户进行交互。MATLAB提供了...
本文将深入探讨如何使用MATLAB来设计图形用户界面(GUI),以及如何利用这种界面对图像进行简单的处理。 MATLAB的GUI设计主要通过 GUIDE(Graphical User Interface Development Environment)工具进行。GUIDE 提供...
在界面编程方面,Matlab的GUIDE(Graphical User Interface Development Environment)工具允许用户设计交互式图形用户界面,无需深入学习复杂的编程语言。通过布局管理器,用户可以轻松创建按钮、滑块、文本框等...