做一个实例,搞定MATLAB界面编程

合集下载

在MATLAB中创建用户界面和GUI应用程序

在MATLAB中创建用户界面和GUI应用程序

在MATLAB中创建用户界面和GUI应用程序MATLAB是一种广泛应用的数学软件,对于数据分析和科学计算具有强大的功能。

然而,仅仅通过MATLAB的命令行窗口进行操作往往不够便捷,特别是当需要进行大量的重复性操作时。

为了解决这个问题,MATLAB提供了创建用户界面(User Interface,简称UI)和GUI(Graphical User Interface)应用程序的功能。

1. GUI应用程序的基本概念GUI应用程序可以通过可视化的方式与用户进行交互,通过按钮、滑块、文本框等控件来实现用户与程序的数据传递和操作。

在MATLAB中创建GUI应用程序的首要步骤是创建一个GUI窗口,可以通过MATLAB提供的GUIDE(GUI Development Environment)工具进行操作,也可以通过编写代码的方式来创建。

2. 使用GUIDE创建GUI应用程序GUIDE是MATLAB提供的一个可视化工具,可以帮助用户创建GUI应用程序。

使用GUIDE可以通过拖拽控件的方式来创建窗口,并使用属性编辑器对控件进行设置。

例如,可以添加按钮和文本框,并设置按钮的回调函数,以实现按下按钮时触发特定的操作。

GUIDE还提供了布局管理器,使得控件的排列和布局更加灵活。

创建完成后,GUIDE会生成一个.m文件和一个.fig文件,分别对应GUI应用程序的代码和界面。

3. 通过编写代码创建GUI应用程序除了使用GUIDE,用户还可以通过编写代码的方式来创建GUI应用程序。

首先,需要创建一个窗口,可以使用MATLAB中的`figure`函数来实现。

然后,可以使用不同的MATLAB函数来添加各种控件,例如`uicontrol`函数用于添加按钮,`uimenu`函数用于添加菜单等。

通过设置控件的属性和回调函数,可以实现控件的响应和交互。

4. GUI应用程序实例假设我们需要一个简单的计算器应用程序,用户可以输入两个数值并选择进行加法、减法、乘法或除法运算。

MATLAB程序设计及应用实例

MATLAB程序设计及应用实例
程序如下: price=input('请输入商品价格'); switch fix(price/100) case {0,1} rate=0; case {2,3,4} rate=3/100; case num2cell(5:9) rate=5/100; case num2cell(10:24) rate=8/100; case num2cell(25:49) rate=10/100; otherwise rate=14/100; end price=price*(1-rate)
c=input('请输入一个字符','s'); if c>='A' & c<='Z'
disp(setstr(abs(c)+1)); elseif c>='a'& c<='z'
disp(setstr(abs(c)-1)); elseif c>='0'& c<='9'
disp(abs(c)-abs('0')); else
disp(c); end
5.1.4 选择结构- switch语句
switch语句
其语句格式为: switch 表达式 case 值1 语句组1 case 值2 语句组2 …… case 值m 语句组m otherwise 语句组m+1 end
5.1.4 选择结构- switch语句
例 某商场对顾客所购买的商品实行打折销售,已知打折标 准,求所售商品的实际销售价格
例 矩阵乘法运算要求两矩阵的维数相容,否则会出错。 先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘

利用Matlab的图形用户界面(GUI)功能,设计并实现实验主界面

利用Matlab的图形用户界面(GUI)功能,设计并实现实验主界面

(1)利用Matlab的图形用户界面(GUI)功能,设计并实现实验主界面;(2) 实现在“符号计算”图形用户界面中的各项符号计算功能,如实现Matlab的求极限、求导、求不定积分与定积分、级数求和、方程组的符号求解、常微分方程的符号求解等符号计算;(3) 利用Matlab的二维、三维绘图功能,实现图形用户界面(GUI)中的部分符号计算的可视化,即给出符号计算实例的同时实现该实例的图形化描述。

如下图给出了一个简单的GUI界面,学生可以参考如下图设计出自己的GUI界面。

程序如下:hf=figure('Position',[200,200,700,500],...'Name','信计08(2)班阿卜杜热黑木20080803417', ...'NumberTitle','off','MenuBar','none');uicontrol(hf,'Style','Frame','Position',[0,0.15,0.45,1],...'Units','normalized','Back',[0,1,1]);COMM1=['n=str2num(get(he1,''String''));', ...%求导连接'b=sym(get(he7,''String''));',...'dec=diff(b,n);', ...'set(he8,''string'',char(dec));'];COMM2=['a=str2num(get(he2,''String''));', ...%求极限连接'f=sym(get(he7,''String''));',...'lim=limit(f,a);', ...'set(he8,''string'',char(lim));'];COMM3=['g=sym(get(he7,''String''));',... %不定积分连接'int_1=int(g);', ...'set(he8,''string'',char(int_1));'];COMM4=['a=str2num(get(he3,''String''));', ... %级数求和连接'b=str2num(get(he5,''String''));', ...'f=sym(get(he7,''String''));',...'sum_1=symsum(f,a,b);', ...'set(he8,''string'',char(sum_1));'];COMM5=['a=str2num(get(he4,''String''));', ... %定积分连接'b=str2num(get(he6,''String''));', ...'f=sym(get(he7,''String''));',...'int_2=int(f,a,b);', ...'set(he8,''string'',char(int_2));'];COMM6=['f=get(he7,''String'');',...'dsolve_1=dsolve(f,''x'');', ...'set(he8,''string'',char(dsolve_1));'];COMM7=['f=get(he7,''String'');',...'ezplot(f);'];COMM8=['g=get(he8,''String'');',...'ezplot(g);'];uicontrol(hf,'Style','Push','Position',[0.02,0.9,0.11,0.06],...'String','求导','Units','normalized','Call',COMM1); uicontrol(hf,'Style','Text','Position',[0.17,0.85,0.08,0.1],...'Units','normalized','Horizontal','center',...'String','阶数','Back',[0,1,1]);he1=uicontrol(hf,'Style','Edit','Position',[0.25,0.9,0.15,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Push','Position',[0.02,0.72,0.13,0.06],...'String','求极限','Units','normalized','Call',COMM2);uicontrol(hf,'Style','Text','Position',[0.17,0.67,0.08,0.1],...'Units','normalized','Horizontal','center',...'String','极限点','Back',[0,1,1]);he2=uicontrol(hf,'Style','Edit','Position',[0.25,0.72,0.15,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Push','Position',[0.02,0.58,0.13,0.06],...'String','不定积分','Units','normalized','Call',COMM3);uicontrol(hf,'Style','Push','Position',[0.02,0.45,0.13,0.06],...'String','级数求和','Units','normalized','Call',COMM4);uicontrol(hf,'Style','Text','Position',[0.31,0.44,0.06,0.06],...'Units','normalized','Horizontal','center',...'String','上限','Back',[0,1,1]);he5=uicontrol(hf,'Style','Edit','Position',[0.38,0.45,0.06,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Text','Position',[0.17,0.44,0.06,0.06],...'Units','normalized','Horizontal','center',...'String','下限','Back',[0,1,1]);he3=uicontrol(hf,'Style','Edit','Position',[0.24,0.45,0.06,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Push','Position',[0.02,0.32,0.13,0.06],...'String','求定积分','Units','normalized','Call',COMM5);uicontrol(hf,'Style','Text','Position',[0.31,0.31,0.06,0.06],...'Units','normalized','Horizontal','center',...'String','上限','Back',[0,1,1]);he6=uicontrol(hf,'Style','Edit','Position',[0.38,0.32,0.06,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Text','Position',[0.17,0.3,0.08,0.06],...'Units','normalized','Horizontal','center',...'String','下限','Back',[0,1,1]);he4=uicontrol(hf,'Style','Edit','Position',[0.24,0.32,0.06,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Push','Position',[0.02,0.2,0.16,0.06],...'String','解微分方程','Units','normalized','Call',COMM6);uicontrol(hf,'Style','text','Position',[0.48,0.9,0.13,0.06],...'String','原函数','Units','normalized');he7=uicontrol(hf,'Style','edit','Position',[0.65,0.9,0.30,0.06],...'String','','Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','text','Position',[0.48,0.77,0.13,0.06],...'String','结果函数','Units','normalized');he8=uicontrol(hf,'Style','text','Position',[0.65,0.77,0.30,0.06],...'String','','Units','normalized','Back',[0,1,0]);h_axes=axes('position',[0.55,0.2,0.4,0.5]);uicontrol(hf,'Style','push','Position',[0.58,0.02,0.13,0.06],...'String','初始绘图','Units','normalized','call',COMM7);uicontrol(hf,'Style','push','Position',[0.80,0.02,0.13,0.06],...'String','结果绘图','Units','normalized','call',COMM8);uicontrol(hf,'Style','Push','Position',[0.02,0.02,0.08,0.06],...'String','退出','Units','normalized','Call', 'close');。

matlab实验6图形用户界面设计

matlab实验6图形用户界面设计

实验6. 图形用户界面设计一、 实验目的1. 掌握图形对象属性的基本操作;2. 掌握菜单及对话框设计、建立控件对象的方法。

二、 实验环境1. 计算机2. matlab7.x三、 实验说明1. 正确操作,认真观察;2. 实验学时:2学时;3. 学会使用help ;4. 保存整理实验结果,提交实验报告。

四、 实验内容1.设计如教材P374 图1所示的菜单,并在此基础上增加选项:可以改变曲线的颜色,可以改变窗口背景颜色。

2.(选做)采用图形用户界面,从键盘输入参数a 、b 、n 的值,考察参数对极坐标曲线)cos(θρn b a +=的影响。

五、 实验程序及结果1.figure('Color',[1 1 1],'Position',[400 300 500 250],'Name','201100000','NumberTitle','off','MenuBar','none');hplot=uimenu(gcf,'Label','&plot');%设置Plot 菜单项uimenu(hplot,'Label','Sin Wave','Call',['t=-pi:pi/20:pi;','y=sin(t);','plot(t,y);','set(hgon,''Enable'',''on'');','set(hgoff,''Enable'',''on'');','set(hlinecolor,''Enable'',''on'');'],'Accelerator','s');uimenu(hplot,'Label','Cos Wave','Call',['t=-pi:pi/20:pi;','y=cos(t);','plot(t,y);','set(hgon,''Enable'',''on'');','set(hgoff,''Enable'',''on'');','set(hlinecolor,''Enable'',''on'');'],'Accelerator','c');%设置Option 菜单项 hoption=uimenu(gcf,'Label','&option');hgon=uimenu(hoption,'Label','&grid on','Call','grid on','Enable', 'off');hgoff=uimenu(hoption,'Label','&grid off','Call','grid off','Enable', 'off');hlinecolor=uimenu(hoption,'Label','&Line Color','Separator','on','Enable', 'off');uimenu(hlinecolor,'Label','&red','Accelerator','r','Call','set(plot(t,y),''Color'',''r'');');uimenu(hlinecolor,'Label','&blue','Accelerator','b','Call','set(plot(t,y),''Color '',''b'');');uimenu(hlinecolor,'Label','&green','Accelerator','g','Call','set(plot(t,y),''Colo r'',''g'');');%设置Exit菜单项uimenu(gcf,'Label','Exit','Call','close(gcf)');%设置快捷菜单hc=uicontextmenu;hlc=uimenu(hc,'Label','背景颜色');uimenu(hlc,'Label','red','Call','set(gcf,''Color'',''r'');');uimenu(hlc,'Label','blue','Call','set(gcf,''Color'',''b'');');uimenu(hlc,'Label','green','Call','set(gcf,''Color'',''g'');');set(gcf,'UIContextMenu',hc);2.%设置对话框的颜色(灰色),位置,大小等属性值hf=figure('Color',[0.5 0.5 0.5],'Position',[200 200 400 250],'Name','201100000','NumberTitle','off','MenuBar','none');%设置图形演示界面的位置,大小,不设的话默认在中心位置axes('Position',[0.35 0.23 0.6 0.7]);%设置提示部分uicontrol(hf,'Style','Text','Units','normalized','Position',[0.05 0.7 0.10.1],'Horizontal','center','String','a=','Back',[1 1 0]);uicontrol(hf,'Style','Text','Units','normalized','Position',[0.05 0.5 0.10.1],'Horizontal','center','String','b=','Back',[1 1 0]);uicontrol(hf,'Style','Text','Units','normalized','Position',[0.05 0.3 0.10.1],'Horizontal','center','String','n=','Back',[1 1 0]);%设置文本输入框的属性值he1=uicontrol(hf,'Style','Edit','Units','normalized','Position',[0.15 0.7 0.1 0.1],'Back',[1 1 1]);he2=uicontrol(hf,'Style','Edit','Units','normalized','Position',[0.15 0.5 0.1 0.1],'Back',[1 1 1]);he3=uicontrol(hf,'Style','Edit','Units','normalized','Position',[0.15 0.3 0.1 0.1],'Back',[1 1 1]);%这里因为函数比较短,直接写了进去,如果函数比较长时可以选择函数调用COMM=['a=str2num(get(he1,''string''));','b=str2num(get(he2,''string''));','n=str2num(get(he3,''string''));','theta=0:0.01:2*pi;','tho=a.*cos(b+n.*theta);', 'polar(theta,tho);'];%设置按钮属性值uicontrol(hf,'Style','Push','Units','normalized','Position',[0.05 0.05 0.10.12],'String','绘图','Call',COMM);uicontrol(hf,'Style','Push','Units','normalized','Position',[0.85 0.05 0.10.12],'String','退出','Call','close(hf)');六、实验总结通过对图形用户界面实验的练习,自己对这方面有了一个初步的认识。

用MATLAB制作图形用户界面

用MATLAB制作图形用户界面

用MATLAB制作图形用户界面MATLAB是一种流行的科学计算软件,它不仅在数值计算和数据分析领域有着广泛的应用,还提供了一种高效的界面设计工具,使得用户可以自定义和制作自己的图形用户界面(GUI)。

通过创建自定义的GUI,用户可以简化复杂操作,提高工作效率,下面就让我们来学习如何用MATLAB制作图形用户界面。

MATLAB的图形用户界面主要由以下几部分组成:窗口:窗口是GUI的基本元素,它提供了一个空间,用户可以在其中添加和组织各种控件(如按钮、文本框等)。

控件:控件是GUI中的基本元素,它们可以接收用户的输入,并在窗口中显示出来。

例如,按钮、文本框、滑动条等都是常见的控件。

菜单:菜单是GUI中的一种导航工具,它们可以链接到其他窗口或者函数,方便用户进行操作。

工具栏:工具栏是GUI中的一种快速执行工具,它们提供了一键执行常见操作的快捷方式。

下面就让我们通过一个简单的例子来学习如何用MATLAB制作一个简单的图形用户界面:打开MATLAB,在命令窗口输入“guide”,并按Enter键。

这将打开GUI设计工具。

在打开的GUI设计工具中,选择“Blank GUI”并点击“OK”,进入GUI编辑器。

在GUI编辑器中,你可以看到一个空白的窗口和一些控件。

你可以通过拖拽的方式将这些控件添加到窗口中。

选中你添加的控件,在右侧的“Properties”面板中,你可以修改控件的属性,如颜色、字体、大小等。

在设计完成后,点击“Save”按钮,保存你的GUI。

此时,MATLAB会生成一个.fig文件和一个.m文件。

其中.fig文件是GUI的图形文件,而.m文件包含了GUI的代码。

在生成的.m文件中,你可以编写控件的事件处理函数。

例如,当用户点击按钮时,应该执行什么样的操作。

在编写完事件处理函数后,你就可以运行你的GUI了。

在命令窗口输入“edit(gcf)”,然后按Enter键,就可以打开你的GUI并进行测试了。

Matlab_-_GUI图形用户界面简单实用教程

Matlab_-_GUI图形用户界面简单实用教程
11
五 GUI图形用户界面
4. 界面激活 保存静态界面后,利用工具栏上的运行按钮激活该界面。 激活后可以看到两个同名文件:experiment1.m和 experiment1.fig。 experiment1.m文件在M文本编辑器中打开, experiment1.fig文件显示为操作界面,但是无法实现任何功 能,需要编写回调函数。
15
五 GUI图形用户界面
对本例来说,首先需要定义几个用户变量,以便记录参加 handles = 运算的数值,进行计算。 mainWnd : 132.0002 p2 : 24.0006
Operation : 149.0002 p1 handles, : 23.0006 function Experiment1_OpeningFcn(hObject, eventdata, varargin) pDot : 148.0002 text3 : 22.0006 handles.output = hObject; pLog10 : 147.0002 text2 : 21.0006 handles.s_Exp=‘’; % 以字符串的形式记录计算表达式 pLog : 146.0002 frame4 : 20.0006 handles.s_Num=‘’; %以字符串的形式记录编辑框中要显示的数值 pCos : 145.0002 text1 : 19.0006 handles.i=1; % s_Exp的计数器 pClear : 18.0006 pSin : 144.0002 pDel : 143.0002 handles.j=1; % s_Num的计数器 pDone : 17.0006 pExp : 16.0006 handles.flag=0; pAdd : 142.0002 %用来区分四则运算和其他运算的标志 pDiv : 141.0002 frame3 : 15.0007 % Update handles structure pMul : 140.0002 frame2 : 133.0002 guidata(hObject, handles); p0 : 139.0002 p_Clear : 151.0002 p9 : 138.0002 p_Done : 150.0002 p8 : 137.0002 output : 132.0002 p7 : 136.0002 s_Exp : '50' p6 : 135.0002 s_Num : '5' p5 : 134.0002 i :2 p4 : 26.0006 j :2 p3 : 25.0006 flag : 0

Matlab实用程序界面设计实例分析

Matlab实用程序界面设计实例分析

Matlab实用程序界面设计实例分析实例33:曲线转换按钮h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例33');x=0:0.5:2*pi;y=sin(x);h=plot(x,y);grid onhuidiao=[...'if i==1,',...'i=0;,',...'y=cos(x);,',...'delete(h),',...'set(hm,''string'',''正弦函数''),',...'h=plot(x,y);,',...'grid on,',...'else if i==0,',...'i=1;,',...'y=sin(x);,',...'set(hm,''string'',''余弦函数''),',...'delete(h),',...'h=plot(x,y);,',...'grid on,',...'end,',...'end'];hm=uicontrol(gcf,'style','pushbutton',...'string','余弦函数',...'callback',huidiao);i=1;set(hm,'position',[250 20 60 20]);set(gca,'position',[0.2 0.2 0.6 0.6]) title('按钮的使用')hold on实例34:栅格控制按钮h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例34');x=0:0.5:2*pi;y=sin(x);plot(x,y)huidiao1=[...'set(h_toggle2,''value'',0),',...'grid on,',...];huidiao2=[...'set(h_toggle1,''value'',0),',...'grid off,',...];h_toggle1=uicontrol(gcf,'style','togglebutton',...'string','grid on',...'value',0,...'position',[20 45 50 20],...'callback',huidiao1);h_toggle2=uicontrol(gcf,'style','togglebutton',...'string','grid off',...'value',0,...'position',[20 20 50 20],...'callback',huidiao2);set(gca,'position',[0.2 0.2 0.6 0.6])title('开关按钮的使用')实例35:编辑框的使用h0=figure('toolbar','none',...'position',[200 150 350 250],...'name','实例35');f='Please input the letter';huidiao1=[...'g=upper(f);,',...'set(h2_edit,''string'',g),',...];huidiao2=[...'g=lower(f);,',...'set(h2_edit,''string'',g),',...];h1_edit=uicontrol(gcf,'style','edit',...'position',[100 200 100 50],...'HorizontalAlignment','left',...'string','Please input the letter',...'callback','f=get(h1_edit,''string'');',...'background','w',...'max',5,...'min',1);h2_edit=uicontrol(gcf,'style','edit',...'HorizontalAlignment','left',...'position',[100 100 100 50],...'background','w',...'max',5,...'min',1);h1_button=uicontrol(gcf,'style','pushbutton',...'string','小写变大写',...'position',[100 45 100 20],...'callback',huidiao1);h2_button=uicontrol(gcf,'style','pushbutton',...'string','大写变小写',...'position',[100 20 100 20],...'callback',huidiao2);实例36:弹出式菜单h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例36');x=0:0.5:2*pi;y=sin(x);h=plot(x,y);grid onhm=uicontrol(gcf,'style','popupmenu',...'string',...'sin(x)|cos(x)|sin(x)+cos(x)|exp(-sin(x))',...'position',[250 20 50 20]);set(hm,'value',1)huidiao=[...'v=get(hm,''value'');,',...'switch v,',...'case 1,',...'delete(h),',...'y=sin(x);,',...'h=plot(x,y);,',...'grid on,',...'case 2,',...'delete(h),',...'y=cos(x);,',...'h=plot(x,y);,',...'grid on,',...'case 3,',...'delete(h),',...'y=sin(x)+cos(x);,',...'h=plot(x,y);,',...'grid on,',...'case 4,',...'delete(h),',...'y=exp(-sin(x));,',...'h=plot(x,y);,',...'grid on,',...'end'];set(hm,'callback',huidiao)set(gca,'position',[0.2 0.2 0.6 0.6]) title('弹出式菜单的使用')实例37:滑标的使用h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例37');[x,y]=meshgrid(-8:0.5:8);r=sqrt(x.^2+y.^2)+eps;z=sin(r)./r;h0=mesh(x,y,z);h1=axes('position',...[0.2 0.2 0.5 0.5],...'visible','off');htext=uicontrol(gcf,...'units','points',...'position',[20 30 45 15],...'string','brightness',...'style','text');hslider=uicontrol(gcf,...'units','points',...'position',[10 10 300 15],...'min',-1,...'max',1,...'style','slider',...'callback',...'brighten(get(hslider,''value''))'); 实例38:多选菜单h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例38');[x,y]=meshgrid(-8:0.5:8);r=sqrt(x.^2+y.^2)+eps;z=sin(r)./r;h0=mesh(x,y,z);hlist=uicontrol(gcf,'style','listbox',...'string','default|spring|summer|autumn|winter',...'max',5,...'min',1,...'position',[20 20 80 100],...'callback',[...'k=get(hlist,''value'');,',...'switch k,',...'case 1,',...'colormap default,',...'case 2,',...'colormap spring,',...'case 3,',...'colormap summer,',...'case 4,',...'colormap autumn,',...'case 5,',...'colormap winter,',...'end']);实例39:菜单控制的使用h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例39');x=0:0.5:2*pi;y=cos(x);h=plot(x,y);grid onset(gcf,'toolbar','none')hm=uimenu('label','example');huidiao1=[...'set(hm_gridon,''checked'',''on''),',...'set(hm_gridoff,''checked'',''off''),',...'grid on'];huidiao2=[...'set(hm_gridoff,''checked'',''on''),',...'set(hm_gridon,''checked'',''off''),',...'grid off'];hm_gridon=uimenu(hm,'label','grid on',...'checked','on',...'callback',huidiao1);hm_gridoff=uimenu(hm,'label','grid off',...'checked','off',...'callback',huidiao2);实例40:UIMENU菜单的应用h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例40');h1=uimenu(gcf,'label','函数');h11=uimenu(h1,'label','轮廓图',...'callback',[...'set(h31,''checked'',''on''),',...'set(h32,''checked'',''off''),',...'[x,y,z]=peaks;,',...'contour3(x,y,z,30)']);h12=uimenu(h1,'label','高斯分布',...'callback',[...'set(h31,''checked'',''on''),',...'set(h32,''checked'',''off''),',...'mesh(peaks);,',...'axis tight']);h13=uimenu(h1,'label','Sinc函数',...'callback',[...'set(h31,''checked'',''on''),',...'set(h32,''checked'',''off''),',...'[x,y]=meshgrid(-8:0.5:8);,',...'r=sqrt(x.^2+y.^2)+eps;,',...'z=sin(r)./r;,',...'mesh(x,y,z)']);h2=uimenu(gcf,'label','色彩');hl2(1)=uimenu(h2,'label','Default',...'checked','on',...'callback',...[...'set(hl2,''checked'',''off''),',...'set(hl2(1),''checked'',''on''),',...'colormap(''default'')']);hl2(2)=uimenu(h2,'label','spring',...'callback',...[...'set(hl2,''checked'',''off''),',...'set(hl2(2),''checked'',''on''),',...'colormap(spring)']);hl2(3)=uimenu(h2,'label','Summer',...'callback',...[...'set(hl2,''checked'',''off''),',...'set(hl2(3),''checked'',''on''),',...'colormap(summer)']);hl2(4)=uimenu(h2,'label','Autumn',...'callback',...[...'set(hl2,''checked'',''off''),',...'set(hl2(4),''checked'',''on''),',...'colormap(autumn)']);hl2(5)=uimenu(h2,'label','Winter',...'callback',...[...'set(hl2,''checked'',''off''),',...'set(hl2(5),''checked'',''on''),',...'colormap(winter)']);h3=uimenu(gcf,'label','坐标选项');h31=uimenu(h3,'label','Axis on',...'callback',...[...'axis on,',...'set(h31,''checked'',''on''),',...'set(h32,''checked'',''off'')']); h32=uimenu(h3,'label','Axis off',...'callback',...[...'axis off,',...'set(h32,''checked'',''on''),',...'set(h31,''checked'',''off'')']); 实例41:除法计算器h=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例41');h1=uicontrol(gcf,'style','edit',...'position',[80 200 100 20],...'HorizontalAlignment','right',...'callback',['m=get(h1,''string'');,',...'a=str2num(m);']);h2=uicontrol(gcf,'style','edit',...'HorizontalAlignment','right',...'position',[80 150 100 20],...'callback',['n=get(h2,''string'');,',...'b=str2num(n);']);h3=uicontrol(gcf,'style','text',...'string','被除数',...'position',[80 230 100 20]);h4=uicontrol(gcf,'style','edit',...'position',[80 50 100 20]);h5=uicontrol(gcf,'style','pushbutton',...'position',[80 100 100 20],...'string','=',...'callback',[...'if b==0,',...'h7=errordlg(''除数不能为0!'',''error'',''on'');,',...'else,',...'k=a/b;,',...'c=num2str(k);,',...'set(h4,''string'',c),',...'end']);h8=uicontrol(gcf,'style','text',...'string','除数',...'position',[80 175 100 20]);h9=uicontrol(gcf,'style','text',...'string','商',...'position',[80 75 100 20]);实例42:单选框的使用h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例42');x=0:0.5:2*pi;y=sin(x);plot(x,y)grid onset(gcf,'toolbar','none')g=set(gca,'position',[0.2 0.2 0.6 0.6]); huidiao1=[...'grid on,',...'set(box_on,''value'',1),',...'set(box_off,''value'',0),']; huidiao2=[...'grid off,',...'set(box_off,''value'',1),',...'set(box_on,''value'',0),']; box_on=uicontrol(gcf,'style','radio',...'position',[5 50 50 20],...'string','grid on',...'value',1,...'callback',huidiao1);box_off=uicontrol(gcf,'style','radio',...'position',[5 20 50 20],...'string','grid off',...'value',0,...'callback',huidiao2);title('无线按钮的使用')实例43:添加环境效果h0=figure('toolbar','none',...'position',[198 56 450 468],...'name','实例43');h1=axes('parent',h0,...'position',[0.15 0.45 0.7 0.5],...'visible','off');sphereh=findobj('type','surface');shading interpaxis equall=light('position',[0 -2 1]);k(1)=get(h,'specularstrength');k(2)=get(h,'diffusestrength');k(3)=get(h,'specularexponent');k(4)=get(h,'specularcolorreflectance');u1=uimenu('parent',h0,...'label','灯光效果',...'tag','u1',...'backgroundcolor',[0.75 0.75 0.75]);u11=uimenu('parent',u1,...'label','gouraud',...'tag','u11',...'backgroundcolor',[0.75 0.75 0.75],...'callback',[...'set(u11,''checked'',''on'');,',...'set(u12,''checked'',''off'');,',...'set(h,''facelighting'',''gouraud'')']); u12=uimenu('parent',u1,...'label','phong',...'tag','u12',...'backgroundcolor',[0.75 0.75 0.75],...'callback',[...'set(u11,''checked'',''off'');,',...'set(u12,''checked'',''on'');,',...'set(h,''facelighting'',''gouraud'')']);u2=uimenu('parent',h0,...'label','背面灯光',...'tag','u2',...'backgroundcolor',[0.75 0.75 0.75]);u21=uimenu('parent',u2,...'label','reverselit',...'tag','u21',...'checked','on',...'backgroundcolor',[0.75 0.75 0.75],...'callback',[...'set(u21,''checked'',''on'');,',...'set(u22,''checked'',''off'');,',...'set(h,''backfacelighting'',''reverselit'')']); u22=uimenu('parent',u2,...'label','reverselit',...'tag','u22',...'backgroundcolor',[0.75 0.75 0.75],...'callback',[...'set(u21,''checked'',''off'');,',...'set(u22,''checked'',''on'');,',...'set(h,''backfacelighting'',''reverselit'')']);s1=uicontrol('parent',h0,...'units','points',...'style','slider',...'tag','s1',...'min',0,...'max',1,...'value',k(1),...'position',[20 80 100 15],...'callback',[...'s1value=get(s1,''value'');,',...'set(h,''specularstrength'',s1value)']); t1=uicontrol('parent',h0,...'units','points',...'style','text',...'tag','t1',...'string','镜面反射强度',...'position',[20 97 100 15]);s2=uicontrol('parent',h0,...'units','points',...'style','slider',...'tag','s2',...'min',0,...'max',1,...'value',k(2),...'position',[20 30 100 15],...'callback',[...'s2value=get(s2,''value'');,',...'set(h,''diffusestrength'',s2value)']); t2=uicontrol('parent',h0,...'units','points',...'style','text',...'tag','t2',...'string','漫反射强度',...'position',[20 47 100 15]);s3=uicontrol('parent',h0,...'units','points',...'style','slider',...'tag','s3',...'min',0.1,...'max',1,...'value',k(3)/20,...'position',[220 80 100 15],...'callback',[...'s3value=get(s3,''value'')+eps;,',...'set(h,''specularexponent'',20*s3value)']);t3=uicontrol('parent',h0,...'units','points',...'style','text',...'tag','t3',...'string','镜面指数',...'position',[220 97 100 15]);s4=uicontrol('parent',h0,...'units','points',...'style','slider',...'tag','s4',...'min',0,...'max',1,...'value',k(4),...'position',[220 30 100 15],...'callback',[...'s4value=get(s4,''value'');,',...'set(h,''specularcolorreflectance'',s4value)']); t4=uicontrol('parent',h0,...'units','points',...'style','text',...'tag','t1',...'string','镜面颜色反射比',...'position',[220 47 100 15]);b1=uicontrol('parent',h0,...'units','points',...'style','pushbutton',...'tag','b1',...'string','关闭',...'position',[145 45 50 30],...'callback','close');实例44:改变坐标轴范围h0=figure('toolbar','none',...'position',[198 56 408 468],...'name','实例44');h1=axes('parent',h0,...'position',[0.15 0.45 0.7 0.5],...'visible','on');e1=uicontrol('parent',h0,...'style','edit',...'string',1,...'position',[50 120 50 20]);t1=uicontrol('parent',h0,...'style','text',...'string','X轴最小值',...'position',[35 150 80 20]); e2=uicontrol('parent',h0,...'style','edit',...'string',5,...'position',[50 60 50 20]); t2=uicontrol('parent',h0,...'style','text',...'string','X轴最大值',...'position',[35 90 80 20]); e3=uicontrol('parent',h0,...'style','edit',...'string',1,...'position',[150 120 50 20]); t3=uicontrol('parent',h0,...'style','text',...'string','Y轴最小值',...'position',[135 150 80 20]); e4=uicontrol('parent',h0,...'style','edit',...'string',5,...'position',[150 60 50 20]);t4=uicontrol('parent',h0,...'style','text',...'string','Y轴最大值',...'position',[135 90 80 20]);e5=uicontrol('parent',h0,...'style','edit',...'string',20,...'position',[250 120 50 20]);t5=uicontrol('parent',h0,...'style','text',...'horizontalalignment','left',...'string','点数',...'position',[250 150 30 20]);b1=uicontrol('parent',h0,...'style','pushbutton',...'string','绘图',...'position',[250 60 60 40],...'callback',[...'a=str2num(get(e1,''string''));,',...'b=str2num(get(e2,''string''));,',...'c=str2num(get(e3,''string''));,',...'d=str2num(get(e4,''string''));,',...'n=str2num(get(e5,''string''));,',...'xgrid=linspace(-abs(a),abs(a),n);,',...'ygrid=linspace(-abs(b),abs(b),n);,',...'[x,y]=meshgrid(xgrid,ygrid);,',...'z=c*sqrt(d-y.*y/b/b-x.*x/a/a);,',...'u=1;,',...'z1=real(z);,',...'for k=2:n-1,',...'for j=2:n-1,',...'if imag(z(k,j))~=0,',...'z1(k,j)=0;,',...'end,',...'if all(imag(z([k-1:k+1],[j-1:j+1])))~=0,',... 'z1(k,j)=nan;,',...'end,',...'end,',...'end,',...'surf(x,y,z1),',...'hold on,',...'if u==1,',...'z2=-z1;,',...'surf(x,y,z2),',...'axis([-abs(a),abs(a),-abs(b),abs(b),-abs(c),abs(c)]);,',...'end,',...'xlabel(''x'');,',...'ylabel(''y'');,',...'zlabel(''z'');,',...'hold off']);b2=uicontrol('parent',h0,...'style','pushbutton',...'string','关闭',...'position',[150 10 60 20],...'callback','close');实例45:简单运算器h1=uicontrol(gcf,'style','radio',...'string','加',...'value',1,...'position',[20 150 40 20],...'callback',[...'k=1;,',...'set(h1,''value'',1),',...'set(h2,''value'',0),',...'set(h3,''value'',0)']); h2=uicontrol(gcf,'style','radio',...'string','减',...'position',[20 110 40 20],...'callback',[...'k=2;,',...'set(h2,''value'',1),',...'set(h1,''value'',0),',...'set(h3,''value'',0)']); h3=uicontrol(gcf,'style','radio',...'string','乘',...'position',[20 70 40 20],...'callback',[...'k=3;,',...'set(h3,''value'',1),',...'set(h2,''value'',0),',...'set(h1,''value'',0)']); e1=uicontrol(gcf,'style','edit',...'position',[80 150 100 20]); e2=uicontrol(gcf,'style','edit',...'position',[80 110 100 20]); e3=uicontrol(gcf,'style','edit',...'position',[80 70 100 20]);b1=uicontrol(gcf,'style','pushbutton',...'string','运算',...'position',[200 150 80 30],...'callback',[...'x=str2num(get(e1,''string''));,',...'y=str2num(get(e2,''string''));,',...'switch k,',...'case 1,',...'z=x+y;,',...'case 2,',...'z=x-y;,',...'case 3,',...'z=x*y;,',...'end,',...'set(e3,''string'',num2str(z))']); b2=uicontrol(gcf,'style','pushbutton',...'string','退出',...'position',[200 100 80 30],...'callback','close');实例46:曲线色彩的修改h0=figure('toolbar','none',...'position',[198 56 408 468],...'name','my second gui');h1=axes('parent',h0,...'position',[0.15 0.45 0.7 0.5],...'visible','on');x=0:0.1:2*pi;k=plot(x,sin(x));xlabel('自变量X');ylabel('函数值Y');title('图形色彩改变');p1=uicontrol('parent',h0,...'style','pushbutton',...'backgroundcolor','r',...'position',[60 100 50 30],...'callback','set(k,''color'',''r'')'); p2=uicontrol('parent',h0,...'style','pushbutton',...'backgroundcolor','g',...'position',[170 100 50 30],...'callback','set(k,''color'',''g'')'); p3=uicontrol('parent',h0,...'style','pushbutton',...'backgroundcolor','b',...'position',[280 100 50 30],...'callback','set(k,''color'',''b'')'); p4=uicontrol('parent',h0,...'style','pushbutton',...'backgroundcolor',[1 1 1],...'fontsize',20,...'fontweight','demi',...'string','关闭',...'position',[150 30 80 60],...'callback','close');t1=uicontrol('parent',h0,...'style','text',...'string','红色',...'fontsize',12,...'fontweight','demi',...'position',[60 120 50 20]);t2=uicontrol('parent',h0,...'style','text',...'string','绿色',...'fontsize',12,...'fontweight','demi',...'position',[170 120 50 20]);t3=uicontrol('parent',h0,...'style','text',...'string','蓝色',...'fontsize',12,...'fontweight','demi',...'position',[280 120 50 20]);实例47:曲线标记h0=figure('toolbar','none',...'position',[198 56 408 468],...'name','my second gui');h1=axes('parent',h0,...'position',[0.15 0.45 0.7 0.5],...'visible','on');x=0:0.1:2*pi;k=plot(x,sin(x),'*');xlabel('自变量X');ylabel('函数值Y');title('标记类型的改变');p1=uicontrol('parent',h0,...'style','pushbutton',...'string','+',...'fontsize',20,...'foregroundcolor',[1 1 1],...'backgroundcolor',[0 0 0],...'position',[60 100 50 20],...'callback','set(k,''marker'',''+'')'); p2=uicontrol('parent',h0,...'style','pushbutton',...'string','o',...'fontsize',20,...'foregroundcolor',[1 1 1],...'backgroundcolor',[0 0 0],...'position',[170 100 50 20],...'callback','set(k,''marker'',''o'')'); p3=uicontrol('parent',h0,...'style','pushbutton',...'string','x',...'fontsize',20,...'foregroundcolor',[1 1 1],...'backgroundcolor',[0 0 0],...'position',[280 100 50 20],...'callback','set(k,''marker'',''x'')'); p4=uicontrol('parent',h0,...'style','pushbutton',...'backgroundcolor',[1 1 1],...'fontsize',20,...'fontweight','demi',...'string','关闭',...'position',[150 30 80 60],...'callback','close');t1=uicontrol('parent',h0,...'style','text',...'string','星号',...'fontsize',12,...'fontweight','demi',...'position',[60 120 50 20]);t2=uicontrol('parent',h0,...'style','text',...'string','圆圈',...'fontsize',12,...'fontweight','demi',...'position',[170 120 50 20]);t3=uicontrol('parent',h0,...。

MATLAB实用教程GUI

MATLAB实用教程GUI

MATLAB实用教程GUI
MATLAB是一种非常强大的数值计算软件,广泛应用于科学计算、工程设计和数据分析等领域。

其中的GUI(Graphical User Interface,图形用户界面)功能可以帮助用户设计出直观、交互性强的界面,提高使用效率和易用性。

本篇教程将介绍如何利用MATLAB的GUI功能创建一个实用的界面。

首先,打开MATLAB软件,并在"Home"选项卡中选择"New Script"创建一个新的脚本。

在脚本中,我们将使用MATLAB的GUI工具箱中的"App Designer"来创建界面。

除了按钮的点击事件外,还可以处理其他各种事件。

例如,通过为文本框添加"ValueChangedFcn"回调函数,可以在文本框内容发生更改时执行相应的操作。

在界面设计完成后,可以通过点击"Run"按钮来运行应用程序,并与用户进行交互。

可以输入文本、选择菜单项、点击按钮等等,然后根据用户的输入做出相应的反应。

通过与用户的交互,可以进行各种有用的计算和处理。

值得一提的是,MATLAB的GUI功能还支持将用户界面保存为独立的应用程序,并与其他MATLAB代码集成。

这意味着界面所包含的各种计算和分析能力可以通过编写MATLAB函数来实现,然后在界面的回调函数中调用这些函数。

这为用户提供了更大的自由度和灵活性,以满足不同需求的应用场景。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

做一个实例,搞定MATLAB界面编程2009-04-12 16:55作者:彭军带插图版本的pdf格式文件,请下载:/source/1144420一个实例搞定MATLAB界面编程作者:彭军邮件:pengjun@博客:/pengjun下面请跟我一步一步做一个图像处理的程序,如果您坚持做完这个实例,我想MATLAB界面编程对您而言,就没有什么难度了。

当然,我这里说的是,您首先要有一定的MATLAB编程基础。

还有,我的MATLAB版本是2008a。

在2008a以前的版本中没有工具栏编辑器,如果需要工具栏要手动写程序,这个我就不多讲了。

好了,废话少说,跟我来吧!1、在MATLAB的命令窗口(Command Window)中运行guide命令,来打开GUIDE界面,如下:2、然后,选择空模板(Blang GUI),点击OK,即可打开GUIDE的设计界面,如下:3、点击工具栏上的菜单编辑器(Menu Editor),打开菜单编辑器,如下:4、在Menu Bar中新建一个菜单项,名字为“文件”,其他设置请看下图:5、在“文件”菜单下添加菜单项:“打开”,“保存”,“退出”。

见下图:如果需要在菜单项“退出”上面添加一个分割线的话,选中“Separator above this item”就行了。

保存我的界面为pjimage.fig. 保存完毕之后,会自动打开pjimage.m文件,而我们所有的程序都是要写在这个M文件里面的。

在编程中,我们的每一个鼠标动作都对应一个Callback函数。

那么我们的菜单项也是如此的。

在界面上,单击鼠标右键选择“Property Inspector”,即可打开属性窗口。

当我们点击不同的控件时,其对应的属性都会在这里显示,我们可以进行修改。

最主要的属性莫过于Tag属性和String属性。

设置当前Figure窗口的Tag属性为:figure_pjimage,窗口的标题(Name属性)为:图像处理实例。

如下:然后,点击工具栏的保存按钮。

之后,点击工具栏的运行按钮(Run Figure)。

注意,工具栏的图标都会有提示的,像运行按钮的提示就是Run Figure. 我们会看到如下的界面:那说明,我们保存的.fig文件的目录不是当前目录,但是没关系啊,我们只要点击“Change Directory”来改变当前目录。

当然,如果你想把当前目录添加到MATLAB路径也可以,那就点击“Add to Path”就OK了。

我在这里推荐点击“Change Directory”,因为没有什么太大必要把其添加到MATLAB路径中,一般是工具箱需要添加或者我们的函数或程序写完了,而在MATLAB的命令窗口找不到我们的函数的时候,我们可以将函数或程序所在的目录添加到MATLAB路径。

总之吧,点那个按钮,要看个人的爱好了。

不管点击两个按钮的那一个按钮,都会正确的运行程序的。

我们的程序运行时的样子,是这样的:文件下面的菜单项和快捷键我们都能看到,但是我们没有写程序,所以就算点也没有什么响应。

还有如果不想设置快捷键,可以在Menu Editor中设置,只要把其选择为Ctrl+none就行了,如下:这样的话,保存项就没有了快捷键了。

我们可以通过上面的按钮“View”来查看该菜单项的响应函数,也就是Callback函数。

也可以在pjimage.m中看,比如保存的Tag属性是m_file_save,那么它对应的Callback函数的名字就是m_file_save_Callback。

依次类推了。

下面我们来写打开菜单项的函数,要打开一个图片,当然要用打开对话框了。

在界面编程中,打开对话框的函数是uigetfile. 关于它的详细的说明用help uigetfile命令查看。

下面是打开菜单的响应函数:function m_file_open_Callback(hObject, eventdata, handles) [filename, pathname] = uigetfile( ...{'*.bmp;*.jpg;*.png;*.jpeg', 'Image Files (*.bmp, *.jpg, *.png, *.jpeg)'; ...'*.*', 'All Files (*.*)'}, ...'Pick an image');保存.m文件,并运行程序。

点击“文件”下的“打开”,会打开如下的打开对话框:选择一个文件之后,程序中的filename就是你选择的文件的文件名,pathname 就是该文件所在的目录的路径。

比如:filename =5.jpg,pathname =C:\Documents and Settings\Administrator\My Documents\。

那么获得路径之后,我们要怎么样才能读入和显示一个图片呢?读入图片可以用imread函数,而显示可以在一个坐标轴上。

那么我们需要在界面上画上一个坐标轴,为了对比,我们画两个坐标轴,一个显示处理前,一个显示处理后的。

并且将处理前的坐标轴的Tag属性改为axes_src,处理后的坐标轴的Tag属性为axes_dst。

更改之后,保存。

如下:然后在m_file_open_Callback程序原来的基础上,再添加如下的程序:axes(handles.axes_src);%用axes命令设定当前操作的坐标轴是axes_src fpath=[pathname filename];%将文件名和目录名组合成一个完整的路径imshow(imread(fpath));%用imread读入图片,并用imshow在axes_src上显示运行程序,通过“打开”菜单项,打开一个图片。

效果如下:那么如何来保存一副图片?用imwrite命令。

但imwrite命令的第一个参数就是你读入的图片数据,也就是imread的返回值。

这样的话,我们就要将m_file_open_Callback中的程序做一点小小的改动。

将最后一句(imshow(imread(fpath))),更改为两句,如下:img_src=imread(fpath);imshow(img_src);不仅如此,我们的保存菜单的Callback函数,如何去获得打开菜单的Callback 函数下的img_src变量呢?这里就要将img_src来作为一个共享的数据。

许多界面编程的朋友,喜欢用global声明。

我个人不喜欢这样用,因为有更好的方法。

那就是用setappdata和getappdata两个函数。

我们可以为界面上面的任何一个具有Tag属性的空间添加应用程序数据。

当然我比较喜欢将这些共享的应用程序数据统一添加到Figure窗口上,因为这样容易记,如果一个控件一个,感觉不容易记。

你在.m文件中会发现除了各个菜单项的Callback函数以外,还有两个函数:pjimage_OpeningFcn和pjimage_OutputFcn.而pjimage_OpeningFcn就相当于界面的初始化函数,而pjimage_OutputFcn则是界面的输出函数,也就是当你不运行fig,而调用.m文件时的返回值。

所以,我们要在pjimage_OpeningFcn中添加如下的程序,来共享这个img_src 矩阵。

代码如下:setappdata(handles.figure_pjimage,’img_src’,0);然后,在m_file_open_Callback函数的最后写上如下程序:setappdata(handles.figure_pjimage,’img_src’,img_src);那么,我们在m_file_save_Callback函数中就可以像这样的来提取img_src,如下:img_src=get appdata(handles.figure_pjimage,’img_src’);那么保存的时候,自然会用到保存对话框了。

要用保存对话框,就要用到uiputfile函数了,具体的请用help uiputfile查看。

那么,保存菜单项下的程序(m_file_save_Callback),可以这样写:[filename, pathname] = uiputfile({'*.bmp','BMP files';'*.jpg;','JPG files'}, 'Pick an Image');if isequal(filename,0) || isequal(pathname,0)return;%如果点了“取消”elsefpath=fullfile(pathname, filename);%获得全路径的另一种方法endimg_src=getappdata(handles.figure_pjimage,'img_src');%取得打开图片的数据imwrite(img_src,fpath);%保存图片下面是退出菜单项的程序的。

要退出界面,只要用close函数就行了,但是通常都会有提示的。

比如你如果进行了处理图片,而又没有保存处理后的图片,那么在关闭的时候就应该给出提示,询问是否进行保存。

不过,在这里,我们先不做这个工作,等后面有需要的时候再写吧。

因此,这里的退出菜单项的程序就是一句,如下:close(handles.figure_pjimage);其实,用delete函数也是可以的,就是:delete(handles.figure_pjimage);看你的心情了。

但是运行程序的时候,你会发现,当你打开图片的时候,如果点“取消”按钮,那么在MATLAB的命令窗口会弹出错误,那是因为我们没有处理取消的情况。

下面我们来处理下这个问题,只要把m_file_open_Callback下面的程序更改为如下程序即可:[filename, pathname] = uigetfile( ...{'*.bmp;*.jpg;*.png;*.jpeg', 'Image Files (*.bmp, *.jpg, *.png, *.jpeg)'; ...'*.*', 'All Files (*.*)'}, ...'Pick an image');if isequal(filename,0) || isequal(pathname,0),return;endaxes(handles.axes_src);fpath=[pathname filename];img_src=imread(fpath);imshow(img_src);setappdata(handles.figure_pjimage,'img_src',img_src);下面我们来做一个图像二值化的一个图像处理。

相关文档
最新文档