`
海王子1994
  • 浏览: 44810 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

MATLAB图像用户界面(1)

 
阅读更多

       图像用户界面,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'');

 

关于菜单的回调属性,下次和句柄图形一起说明。

 

 

 

  • 大小: 28.6 KB
  • 大小: 29.7 KB
  • 大小: 30.9 KB
  • 大小: 32.5 KB
  • 大小: 18.6 KB
  • 大小: 22.5 KB
  • 大小: 16.6 KB
2
1
分享到:
评论

相关推荐

    MATLAB图像处理与界面编程宝典pdf part4

    第4部分“GUI界面编程”,包括第27~第29章,从程序设计、图形用户界面设计入手讲解了软件编程方面的问题,最后给出了图像处理软件及界面编程的实际例子。 本书写作结构明晰,图文并茂,案例丰富,具有很强的可操作...

    MATLAB GUI图像处理界面设计

    MATLAB GUI(Graphical User Interface)图像处理界面设计是一种强大的工具,它允许用户通过图形化的交互方式对图像进行各种操作。在本项目中,我们主要关注的是如何利用MATLAB构建一个用户友好的图像处理界面,以及...

    MATLAB图像用户界面设计很适应初学者

    MATLAB 图像用户界面设计 MATLAB 图像用户界面设计是 MATLAB 中的一种重要设计模式,旨在帮助用户快速构建图形用户界面。该设计模式提供了多种控件和工具,方便用户根据实际需求设计和实现图形用户界面。 11.1 ...

    MATLAB图像处理与界面编程宝典pdf part3

    本书第1部分“基础篇”,包括第1~第10章,对MATLAB安装试验基本问题、MATLAB图像处理的特点及其学习方法、数字图像的基本知识进行了概述。从图形绘制开始,层层深入MATLAB的二维和三维图像绘制功能,此外还介绍了...

    matlab图像融合工具包_matlab图像GUI_matlab图像处理_图像融合_图像融合ei_图像融合matlab_

    1. "matlab图像GUI":表明该工具包包含用MATLAB构建的图形用户界面,用户可以通过点击和选择菜单选项来进行图像处理。 2. "matlab图像处理":这是对整个工具包的概括,表示它是基于MATLAB的图像处理解决方案。 3. ...

    MATLAB图像处理与界面编程宝典pdf part1

    本书第1部分“基础篇”,包括第1~第10章,对MATLAB安装试验基本问题、MATLAB图像处理的特点及其学习方法、数字图像的基本知识进行了概述。从图形绘制开始,层层深入MATLAB的二维和三维图像绘制功能,此外还介绍了...

    MATLAB图像处理与界面编程宝典+代码

    而在界面编程方面,MATLAB的GUIDE(图形用户界面设计环境)则可以帮助用户创建交互式的应用程序。 本书的核心知识点主要包括以下几个部分: 1. **MATLAB基础**:介绍MATLAB的基本语法、数据类型、运算符、控制结构...

    基于Matlab图像处理GUI源代码

    本资源"基于Matlab图像处理GUI源代码"提供了一种图形用户界面(GUI)的方式,使得非编程背景的用户也能方便地进行图像操作。以下将详细介绍其中涉及的主要知识点: 1. **MATLAB图像处理基础**:MATLAB提供了大量的...

    《matlab图像处理与界面编程宝典》附书 代码

    9. MATLAB图形用户界面(GUI)编程:MATLAB提供了GUIDE工具,使得创建交互式界面变得简单。通过设计按钮、文本框、滑块等控件,可以构建出直观易用的应用程序。 10. 多维数组和矩阵操作:MATLAB强大的数组运算能力...

    基于matlab图像处理系统_matlab图像界面_数字图像处理大作业_matlabgui_超分辨率重建_超分辨

    总结来说,"基于matlab图像处理系统"的这个项目是通过创建MATLAB GUI来实现图像的超分辨率重建,涉及到图像处理的基本概念、GUI编程技巧以及高级的超分辨率理论与技术。通过这个项目,学习者可以深入理解图像处理...

    MATLAB图像处理与界面编程宝典

    《MATLAB图像处理与界面编程宝典》是一本深度探讨MATLAB在图像处理和界面编程领域的专著。MATLAB(Matrix Laboratory)是一款强大的数学计算软件,尤其在数值分析、符号计算、数据可视化以及图像处理等方面有着广泛...

    MATLAB图像处理与界面编程宝典及代码.zip

    《MATLAB图像处理与界面编程宝典及代码》是一份深度探讨MATLAB在图像处理和用户界面设计领域的综合资源包。这个压缩文件包含了丰富的学习资料和实战代码,旨在帮助用户提升MATLAB技能,特别是在图像分析和创建交互式...

    MATLAB图像处理与界面编程宝典pdf part2

    本书第1部分“基础篇”,包括第1~第10章,对MATLAB安装试验基本问题、MATLAB图像处理的特点及其学习方法、数字图像的基本知识进行了概述。从图形绘制开始,层层深入MATLAB的二维和三维图像绘制功能,此外还介绍了...

    test_matlab图像GUI_matlab图像处理_matlabGUI_

    在MATLAB中,图形用户界面(GUI)是一种交互式编程方式,它允许用户与程序进行直接的视觉交互,而不仅仅是通过命令行。本教程聚焦于使用MATLAB GUI进行图像处理,包括几何变换和函数变换。MATLAB GUI为图像处理提供...

    基于图像处理和matlab带界面的细胞图像分割与计数

    该项目基于matlab语言实现,带UI界面和测试数据图片及代码,在matlab2014a上亲测可以直接运行。主要运用数字图像处理的相关知识,滤波、去噪、分割等技术。适用于数字图像处理学习者、matlab研究者、计算机视觉入门...

    基于matlab的图像处理技术及用户界面设计.pdf

    基于matlab的图像处理技术及用户界面设计.pdf基于matlab的图像处理技术及用户界面设计.pdf基于matlab的图像处理技术及用户界面设计.pdf基于matlab的图像处理技术及用户界面设计.pdf基于matlab的图像处理技术及用户...

    Matlab数字图像处理界面

    在Matlab中设计图形用户界面(GUI)可以极大地提高工作效率,因为它允许用户通过直观的按钮和菜单而非代码来执行命令。在这个特定的项目中,开发者可能创建了多个GUI组件,如按钮、滑块、文本框等,以实现对图像的...

    matlab图形用户界面(GUI)制作.DOC

    MATLAB图形用户界面(GUI)制作 MATLAB图形用户界面(GUI)制作是指使用MATLAB编程语言创建图形用户界面的过程。图形用户界面是指计算机程序与用户之间的交互界面,通过图形化的方式来与用户进行交互。MATLAB提供了...

    基于matlab的图形用户界面设计

    本文将深入探讨如何使用MATLAB来设计图形用户界面(GUI),以及如何利用这种界面对图像进行简单的处理。 MATLAB的GUI设计主要通过 GUIDE(Graphical User Interface Development Environment)工具进行。GUIDE 提供...

    Matlab图像处理与界面编程宝典源码-绘图与图形处理.rar

    在界面编程方面,Matlab的GUIDE(Graphical User Interface Development Environment)工具允许用户设计交互式图形用户界面,无需深入学习复杂的编程语言。通过布局管理器,用户可以轻松创建按钮、滑块、文本框等...

Global site tag (gtag.js) - Google Analytics