MATLAB使用详解 第14章 图形对象和句柄解析

合集下载

MATLAB图形对象句柄命令

MATLAB图形对象句柄命令

MATLAB图形对象句柄命令MATLAB图形对象句柄命令2010-05-25命令1 figure功能创建一个新的图形对象。

图形对象为在屏幕上单独的窗口,在窗口中可以输出图形。

用法figure用缺省的属性值创建一个新的图形对象。

figure('PropertyName',PropertyValue,…)对指定的属性PropertyName用指定的属性值PropertyValue(属性名与属性值成对出现)创建一个新的图形窗口,对于那些没有指定的属性,则用缺省值。

属性名与有效的属性值见下表。

figure(h)1.若h为一个已经存在的图形的句柄,则figure(h)使由h标记的图形成为当前图形,使它可见,且在屏幕上把它显示到所有图形之前。

当前图形为图像输出的地方。

2.若h不是已经存在图形的句柄,但是为一整数,则该命令生成一图形窗口,同时把该窗口的句柄赋值为h;若h不是一图形窗口的句柄,也不是一整数,则返回一错误信息。

h=figure(…)返回图形窗口对象的句柄给h。

表7-10属性名属性说明有效属性值窗口位置Position图形窗口的位置与大小有效值:四维向量[left,bottom,width,height]缺省值:决定于显示Units用于解释属性Position的单位有效值:inches(英寸)centimeters(厘米)normalized(标准化单位,认为窗口为一长宽都是1)points(点)pixels(像素)characters(字符)缺省值:pixels指定类型与外在显示Color窗口的背景颜色有效值:ColorSpec(有效的颜色参数)缺省值:取决于颜色表(参见命令colordef)Menubar转换图形窗口菜单条的"开"与"关"有效值:none、figure缺省值:figure Name显示图形窗口的标题有效值:任意字符串缺省值:''(空字符串)NumberTitle标题栏中是否显示'Figure No.n',其中n为图形窗口的编号有效值:on、off缺省值:on Resize指定图形窗口是否可以通过鼠标改变大小有效值:on、off缺省值:on SelectionHighlight当图形窗口被选中时,是否突出显示有效值:on、off缺省值:on Visible确定图形窗口是否可见有效值:on、off缺省值:on WindowStyle指定窗口为标准窗口还是典型窗口有效值:normal(标准窗口)、modal(典型窗口)缺省值:normal控制色图Colormap图形窗口的色图有效值:m*3阶的RGB颜色矩阵缺省值:jet色图Dithermap用于真颜色数据以伪颜色显示的色图有效值:m*3阶的RGB颜色矩阵缺省值:有所有颜色的色图DithermapMode是否使用系统生成的抖动色图有效值:auto、manual缺省值:manual FixedColors不是从色图中获得的颜色有效值:m*3阶的RGB颜色矩阵缺省值:无(只读模式)MinColormap系统颜色表中能使用的最少颜色数有效值:任一标量缺省值:64 ShareColors允许MATLAB共享系统颜色表中的颜色有效值:on、off缺省值:on指定透明度Alphamap图形窗口的α色图,用于设定透明度。

matlab句柄图形对象

matlab句柄图形对象

句柄图形对象(1)function my_plotx=1:10y=peaks(10)%Z = peaks(n);returns an n-by-n matrix.cax=newplot%newplot prepares a figure and axes for subsequent graphics commands.%h = newplot prepares a figure and axes for subsequent graphics commands and returns a handle to the current axes.LSO=['- ';'--';': ';'-.']%此处第一项与第三项要加空格,使得各行元素相等set(cax,'FontName','Times','FontAngle','italic')%设置图形坐标轴的字体与字体倾斜角度set(get(cax,'Parent'),'MenuBar','none')%关闭工具栏line_handles=line(x,y,'Color','b')%将10条曲线利用直线全部画出,并返回直线句柄向量,10条曲线对应10个句柄值%所以该句柄向量一共有10个元素style=1for i=1:length(line_handles)if style>length(LSO)style=1endset(line_handles(i),'LineStyle',LSO(style,:)) %设置直线属性style=style+1endgrid on(2)function my_plot3(x,y,z)cax=newplothold_state=ishold%检测当前的hold状态LSO=['- ';'--';': ';'-.']narginif nargin==2%nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能。

matlab-函数句柄 ppt课件

matlab-函数句柄  ppt课件
1.2656 r2 =
-2.7656
6
ppt课件
➢ 嵌套函数 任一m函数体内所定义的函数称为外部函
数的嵌套函数。matlab支持多重嵌套函数 即 在嵌套函数内部继续定义下一层的嵌套函数。
7
ppt课件
function x = nestFun(p1, p2) X1=nestFun(p2);
function y = nestFunIn(p3)%嵌套函数 y=2*p3; end x=x1+p1; end
8
ppt课件
Matlab函数体通常不需end结束标记, 但如包含嵌套函数,则该m文件内的所有函 数(主函数和子函数)不论是否包含嵌套 函数都需显式end标记。 嵌套函数的调用规则 1.父级函数可调用下一 层嵌套函数。2.相同父级的同级嵌套函数可 相互调用。3.处于低层的嵌套函数可调用任 意父级函数。
22
ppt课件
当我们将一个函数名作为字符串传递给函 数str2func时,也可以创建该函数的函数句柄。
19
ppt课件
函数句柄的调用和操作
可通过函数feval进行函数句柄的调用 feval(函数句柄)(间接调用格式)
f_h1=@peaks%peaks函数,可产生一个凹凸有致的 曲面 feval(f_h1) feval(函数句柄,参数列表) f_h=@plot feval(f_h,0:10,0:10)
ppt课件
为了说明问题,我们用简单的两个数相加,
>> sum=@(x,y)x+y
sum = @(x,y)x+y
>> sum(2,3) ans =
5
在这里,(x,y)为输入参 数列表,x+y为运算表达 式。@的作用就是将一个 函数的函数句柄赋值给等 号左边的变量。在调用函 数时就可以调用该句柄, 可以实现同样的功能。

使用Matlab进行图像分析和对象检测

使用Matlab进行图像分析和对象检测

使用Matlab进行图像分析和对象检测图像分析和对象检测是计算机视觉领域中的重要研究方向。

随着数字图像的广泛应用和发展,利用计算机对图像数据进行分析和处理的需求越来越迫切。

在这篇文章中,我们将介绍如何使用Matlab进行图像分析和对象检测,并探索这些技术在各种领域的应用。

一、引言图像分析是指利用数字图像数据的各种技术和方法,从图像中提取有用信息和结构的一种过程。

而对象检测是图像分析领域中的一个关键任务,其目标是在图像中准确地检测和定位特定的对象。

在计算机视觉中,对象可以是各种各样的,例如人脸、车辆、动物等。

二、Matlab在图像分析和对象检测中的应用Matlab是一种功能强大的科学计算和工程建模软件,也是计算机视觉研究者和工程师常用的工具之一。

Matlab提供了丰富的图像处理和计算机视觉函数,可以方便地实现各种图像分析和对象检测算法。

1. 图像处理首先,Matlab提供了一系列用于图像处理的函数,例如读取和显示图像、调整图像的大小和尺寸、对图像进行滤波和增强等。

通过这些函数,我们可以对图像进行预处理,以便进行更准确的分析和检测。

2. 特征提取在图像分析和对象检测中,特征提取是一项重要的任务。

特征是一组能够描述对象或图像某些属性的数值,例如颜色、纹理、形状等。

Matlab提供了各种用于特征提取的函数,例如颜色直方图、梯度直方图、灰度共生矩阵等。

利用这些函数,我们可以提取出有助于区分不同对象的特征。

3. 目标检测在对象检测中,一种常用的方法是使用分类器来判断图像中是否存在特定的对象。

Matlab提供了各种分类器的实现,例如支持向量机(SVM)、人工神经网络(ANN)等。

我们可以利用这些分类器对提取的特征进行训练和分类,从而实现对象的检测和定位。

4. 应用案例Matlab的图像分析和对象检测功能在各种领域中得到广泛应用。

例如,在医学图像分析中,可以利用Matlab对医学影像进行分析和诊断;在交通监控中,可以使用Matlab进行车辆和行人的检测和跟踪;在农业领域,可以利用Matlab对农作物的生长状态进行分析和监测。

matlab-函数句柄

matlab-函数句柄


匿名函数
匿名函数(anonymous function)是 MATLAB 7.0版提出的一种全新的函数描述形式和内 联函数类似可以让用户编写简单的函数而不需要创建 M文件。 相当于C语言中的函数指针(入口地址)只不过句 柄就用一个唯一的常整数来指出 。匿名函数是函数句 柄的一种特殊用法这里所得到的函数句柄变量不指向 特定的函数即不指向函数M文件中的函数名而是指向 一个函数表达式(具体表达式)。
函数句柄的调用和操作
可通过函数feval进行函数句柄的调用 feval(函数句柄)(间接调用格式) f_h1=@peaks%peaks函数,可产生一个凹凸有致的 曲面 feval(f_h1) feval(函数句柄,参数列表) f_h=@plot feval(f_h,0:10,0:10)
>> sum=@(x,y)x.^2+y.^2 sum = @(x,y)x.^2+y.^2 >> sum(2,3) ans = 5 直接调用格式
函数句柄
1
主 要 内 容
函数类型 (MATLAB)
2
函数句柄介绍
3
函数句柄举例
一.函数类型介绍
MATLAB函数的类型 有主函数、子函数、嵌套函数、私用函数和匿 名函数等 主函数 任意m文件中的第一个函数称呼为主函数。 主函数之后可能附随多个子函数。主函数是在 命令区或其它函数中可调用的唯一一个该m文 件中所定义的函数。
如果修改p或者q的值例如将q改为2 q= 2 >> f(2,3) ans = 31 计算结果并没有改变,这是因为该函数句柄保存的 是函数在创建时的快照,而不是动态的访问其中的变量, 如果希望获取新值。需要重新创建一次该函数,完整的方 法应该是这样的: >> q=2; >> f=@(x,y) x^p+y^q f = @(x,y)x^p+y^q >> f(2,3) ans = 13

ch6 matlab图形句柄

ch6 matlab图形句柄

Matlab图形句柄 set范例: t = 0:0.1:4*pi; y = exp(-t/5).*sin(t); h = plot(t, y); % h 为曲线的句柄 set(h,'Linewidth',3); % 将曲线宽度改为 3 set(h,'Marker','o'); %将曲线的线标改成小圆圈 set(h,'MarkerSize',20); % 将线标的大小改成 20 get范例: get(h,'LineWidth') h,'Color') get(0,'screensize') %取得曲线宽度 %取得曲线颜色 %取得屏幕的尺寸
例:编写程序建立图形窗口,要求满足: 1)窗口宽和高为屏幕宽和高的一半,窗口右下角在 屏幕宽和高的1/4处;窗口背景为蓝色. 2)无菜单栏,标题名称为"图形窗口演示",无图 形窗口编号. 3)单击鼠标打印出正弦曲线. x=0:0.05:2*pi;y=sin(x); s=get(0,'screensize'); h=s(4);w=s(3); h1=figure('color',[0,0,1],'position',[0.25*w,0.25*h,... 0.5*w,0.5*h],'name','图形窗口演示','numbertitle',... 'off','menubar','none','windowbuttondownfcn',... 'plot(x,y);axis([0,2*pi,-1,1])');

4MATLAB图形界面制作与句柄图形

4MATLAB图形界面制作与句柄图形
• 菜单编辑器界面的左下角有两个按钮,选择第一个按钮,可以创建 下拉式菜单,选择第二个按钮,可以创建context Menu菜单(类似于弹 出式菜单)。选择它后,图中左上角的第三个按钮就会变成可用,单 击它可以创建Context Menu主菜单。在选中已经创建的Context Menu主菜单后,可以单击第二个按钮创建选中的Context Menu主菜 单的子菜单。与下拉式菜单一样,选中创建的某个Context Menu菜单, 菜单编辑器的右边就会显示该菜单的有关属性,可以在这里设置、修 改菜单的属性。
2019/11/10
2
设计原则
由于要求不同,设计出来的界面也就千差万别。但是,自从人们开始设计图形界 面以来,界面设计的评判标准却没有太大的变化。简单来说,一个好的界面应遵
循以下三个原则 :
(1)简单性 :
设计界面时,力求简洁、直观、清晰地体现出界面的功能和特征。
(2)一致性:
所谓一致性有两层含义:一是读者自己开发的界面风格要尽量一致;二 是新设计的界面要与其他已有的界面风格不要截然相左。这是因为用户在 初次使用新界面时,总习惯于凭经验进行试探。比方说,图形显示区常安 排在界面左半边,而按键等控制区被排在右侧。
• 在MATLAB图形用户界面(GUI)设计中,有两种菜 单类型,分别是下拉式菜单类型Uimenu和内容式 菜单类型Uicontextmenu。
2019/11/10
14
图形界面制作-菜单(2)
菜单的建立:
在MATLAB中,可以通过命令行方式和GUI设计工具中的菜单 编辑器两种方式建立菜单: (1)命令行方式 :在命令行方式下,可以通过函数uimenu建
• 风格一致和必要的个性化。风 格一致的好处是可以减少用户 的记忆量,减少出错几率,并 迅速积累操作经验。必要个性 化是使用户对软件留下深刻印 象。合理布局。

matlab句柄的用法

matlab句柄的用法

matlab句柄的用法Matlab 句柄的用法句柄(Handle)是Matlab 编程中一个重要的概念,它用于引用对象(Object)或数据结构(data structures)的实例。

句柄的使用可以提高代码的灵活性和可重用性,并方便对对象进行处理和修改。

本文将针对Matlab 句柄的用法进行详细讨论,一步一步地回答与句柄相关的问题。

1. 什么是句柄?在Matlab 中,句柄是指对一个对象或数据结构的引用。

与其他编程语言类似,Matlab 的变量存储的是值,但通过句柄,我们可以间接地引用和操作变量所指向的对象,而不需要直接处理变量所存储的值。

这种间接的引用方式给Matlab 中的编程带来了很大的灵活性和高级特性,使得我们可以轻松地编写面向对象的代码。

2. 如何创建句柄?在Matlab 中,我们可以使用句柄类来创建对象并获得句柄。

句柄类是一种特殊的类,它允许多个句柄引用同一个对象实例。

要创建一个对象并获得句柄,我们可以按照以下步骤进行:步骤1:定义一个句柄类首先,我们需要定义一个句柄类。

句柄类是一个继承自handle 的类。

例如,我们可以定义一个句柄类MyClass 如下:matlabclassdef MyClass < handleproperties% 在这里定义类的属性endmethods% 在这里定义类的方法endend在这个示例中,我们定义了一个名为MyClass 的句柄类,该类继承自handle 类。

我们可以在properties 中定义类的属性,在methods 中定义类的方法。

步骤2:创建对象并获得句柄接下来,我们可以通过创建对象来获得句柄,并引用该对象的实例。

我们可以使用类的构造函数来创建对象,并将其赋值给一个变量。

例如,创建一个MyClass 的对象并获得句柄的代码如下:matlabmyObject = MyClass();这样,我们就创建了一个MyClass 的对象,并将其句柄存储在myObject 变量中。

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

本书在第12章向读者详细介绍了MATLAB的数据可视化功能,即如何通过运 用MATLAB的绘图函数和图形绘制窗口绘制用户需要的二维、三维等图形, 相信读者通过学习,已经应该对于“高级”绘图的运用有了一定程度的了 解。正如笔者提到的一样,MATLAB 7.0中的“高级”绘图指令往往不能使 用户对于图形绘制了解得很透彻,如果用户需要通过了解“低层”绘图指 令和图形对象属性开发函数,来对高级绘图指令的形成原理进行深入理解, 并绘制出更加个性化的图形,那么读者应该仔细阅读本章。 本章首先简要介绍了MATLAB图形对象的相关概念、体系结构等;MATLAB中 需要通过句柄访问和控制图形对象,因此第14.2节讨论对象句柄的概念及 其访问;第14.3节介绍了MATLAB中对象属性的查询、设置;第14.4-14.5 节分别讨论了两类重要的MATLAB图形对象,即窗口对象和轴对象;第14.6 节介绍了图形输出控制相关的属性设置;第14.7节介绍M文件内句柄的存 储及MATLAB内建函数对句柄的操作,最后第14.8节对本章进行了小结。


技术凝聚实力 专业创新出版
14.2.2 调用findobj函数通过属性值查询对象
MATLAB提供给用户findobj函数,用于通过对属性值的搜索来查询对象句 柄。findobj函数可以快速形成一个结构层次的截面并获得具有指定属性 值的对象句柄,如果用户没有指定起始对象,那么系统默认findobj函数 从Root对象开始,搜索与用户指定属性名和属性值相符的所有对象。

技术凝聚实力 专业创新出版
14.1 图形对象概述

图形对象(Graphics Object)是MATLAB 7.0提供给用 户的一种用于创建计算机图形的面向对象的图形系统, 该系统提供给用户创建线、字、网格、面及图形用户界 面(GUI,有关内容详见本书第17章)的多种3绘图指令。 第12章所介绍的各种“高级”指令都是以图形对象为基 础生成的,所以图形对象也称为低层图形。低层指令的 调用,没有高层指令那样简明清晰、通俗易懂,但是低 层指令可以直接对图形的基本要素进行操作的特点决定 了使用者可以让绘制的图形更加个性化,更加具有表现 力。
14.2.3 使用句柄操作对象

本节主要讲解如何利用句柄,完成对于对象的复制和删除操作。 (1)调用copyobj函数复制对象。

用户利用MATLAB中的copyobj函数,可以将对象a1从其父对象中复制到另 一个对象中,生成新的对象a2,则a1和a2的区别有2点:
父对象不同;



对象句柄不同。

技术凝聚实力 专业创新出版
14.1.3 MATLAB中对象的属性

MATLAB中各级对象的属性控制其各种外观和显 示特性。对象的属性包括公共属性(如对象类 型、父、子对象、是否可见等)和不同类型对 象的特有属性。例如,通过任何给定的图形对 象,用户可以获取窗口中的最后击键、鼠标指 针位置,或是最后选中的菜单句柄。
(2)调用delete函数删除对象。MATLAB中,用户可以使用delete函数, 删除一个对象,其参数是此对象的句柄。例如,用户可以需要删除当前的 坐标轴,代码如下: delete(gca)

技术凝聚实力 专业创新出版 Nhomakorabea14.1.2 图形对象的类型

本小节主要是在14.1.1节的基础上向用户详细介绍各种 类型的图形对象。


(1)根对象。
(2)图形窗口对象(Figure)。
(3)用户界面对象(UI objects)。用户界面对象是 图形窗口对象的一个子对象,其用来创建用户界面的若 干相关图形。 (4)轴对象(Axes)。轴对象和用户界面对象是平行 的兄弟关系。
技术凝聚实力 专业创新出版
14.2 访问对象句柄

MATLAB中创建的任何对象都由系统赋予一个句柄,所有构造函数的 返回值即为其所创建对象的句柄。

14.1.3节已经向读者介绍了对于对象属性的查询和设置,读者已了 解到,如果需要做到对于对象属性的操作(查询或设置),则必须 在对象创建之初就将其句柄保存在变量中,作为准备;如果用户觉 得这样比较烦琐,或者偶尔忘记了保存,则还可以调用findobj函 数或罗列其父对象的Children属性来获取现有对象的句柄。
读者应该很清楚,根对象的句柄为0,而其子对象,图形窗口对象 的句柄一般有两种情况: 整数:默认显示在窗口标题栏中; 浮点数:具有完全的MATLAB内部精度。


技术凝聚实力 专业创新出版
14.2.1 获取当前对象的句柄

MATLAB中,有关句柄图形的一个极为重要的概念是当前 性(Be Current)。例如,当前的窗口即为接受绘制函 数输出的窗口;当前的坐标轴就是创建坐标轴子对象的 命令输出目标坐标轴;而当前的图形对象则为最后创建 的图形对象,或被用户用鼠标点击选中的图形对象。 用户可以直接把调用绘图函数的返回值存放在一个变量 中,那么这个变量就是相应图形的句柄。 另外一种获取当前对象句柄的常用方法是调用get函数, get函数的调用格式和功能系统地阐述如下。


用户希望将字符串‘sin(t)=.707’从当前位置点[pi/4,sin(pi/4)]移动 到点[3*pi/4,sin(3*pi/4)],这两个位置点的函数值相同。为了实现移动 操作,用户首先要获得字对象的句柄,然后通过使用这个获得的句柄修改 字对象的属性Position。
技术凝聚实力 专业创新出版
技术凝聚实力 专业创新出版
14.1.1 图形对象的体系结构

图形对象是MATLAB中用来显示数据和创建GUI的基本绘图元素,对象的每 个实例(instance)都对应唯一的标识符(Identifier),此标识符称为 对象的句柄(handle),句柄由系统设定,用户不能改变。用户可以利用 句柄轻松地操作现有图形的各项特征,即设置对象属性。 MATLAB的图形对象体系结构中包含各种具有继承关系的对象,其关系有 “父子”(从属)关系和“兄弟”(平行)关系两种,具体如图14.1所示。
相关文档
最新文档