drawpolygon

创建可定制的多边形ROI

描述

例子

roi= drawpolygon创建一个多边形对象,并允许在当前轴上交互式绘制多边形感兴趣区域(ROI)。

若要绘制ROI,请将指针定位在图像上。光标变成一个芙蓉形状。单击可绘制多边形的顶点,拖动可绘制顶点之间的直线。要完成ROI,双击鼠标按钮。有关使用ROI的详细信息,包括键盘快捷键和上下文菜单选项,请参见提示

请注意

drawpolygon是一个方便函数来创建多边形ROI对象。如果直接创建ROI对象,则调用多边形,你必须打电话给对象函数,以启用ROI的交互式绘图。相比之下,drawpolygon函数创建ROI对象并调用对象函数。无论您以何种方式创建ROI,您都可以使用对象属性、对象函数和事件通知来定制其外观和行为。有关使用这些功能的详细信息,请参见提示

roi= drawpolygon (斧头在指定的轴上创建ROI斧头

roi= drawpolygon (___名称,值使用一个或多个名称-值对修改ROI的外观和行为。未指定的名称-值对被设置为默认值。

例子

全部折叠

将图像读入工作区并显示它。

imshow (imread (“strawberries.jpg”))

在图像上绘制多边形ROI。使用“FaceAlpha”名称-值对使ROI的脸部透明。

H = drawpolygon(“FaceAlpha”, 0);

通过设置ROI的“color”属性更改多边形轮廓的颜色。

h.Color =“黄色”

将图像读入工作区并显示它。

I = imread(“baby.jpg”);图imshow(我)

控件在图像上绘制多边形ROI位置参数指定顶点的位置。

My_vertices = [500 500;400 600;400 700;500 800;700 600);H = drawpolygon(“位置”, my_vertices);

将图像读入工作区。

I = imread(“cameraman.tif”);

显示图像。

imshow(我);

在图像上绘制多边形ROI。

ROI = drawpolygon(“颜色”“r”);

为ROI移动事件设置侦听器。当您移动它时,ROI将发送这些事件的通知并执行您指定的回调函数。

addlistener (roi,“MovingROI”, @allevents);addlistener (roi,“ROIMoved”, @allevents);

allevents回调函数显示感兴趣区先前位置和当前位置。

函数allevents(src,evt) evname = evt. eventname;开关(evname)情况下“MovingROI”} disp ([“投资回报率上升:”mat2str (evt.PreviousPosition)]);disp ([“ROI移动当前位置:”mat2str (evt.CurrentPosition)]);情况下“ROIMoved”} disp ([“ROI改变了之前的位置:”mat2str (evt.PreviousPosition)]);disp ([“ROI改变了当前位置:”mat2str (evt.CurrentPosition)]);结束结束

输入参数

全部折叠

ROI的父轴,指定为对象或UIAxes对象。获取有关在中使用ROI的信息UIAxes,包括重要的限制,见使用应用程序设计器创建的应用程序中的roi

名称-值对参数

的可选逗号分隔对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:roi = drawpolygon('FaceAlpha',0,'FaceSelectable',1);

ROI颜色,指定为由逗号分隔的对组成“颜色”和MATLAB®ColorSpec(颜色规格)价值。

例子:“绿色”

例子:‘g’

例子:[0 10 0]

上下文菜单,指定为逗号分隔的对,由“快捷菜单”和一个快捷菜单对象。指定此名称-值对以在右键单击ROI时显示自定义上下文菜单。要创建自定义上下文菜单,请创建快捷菜单对象,通过使用uicontextmenu函数,然后配置上下文菜单属性。

ROI可以通过上下文菜单交互地删除,指定为由逗号分隔的对组成“可删除的”的逻辑值真正的.当值为真正的(默认),您可以通过上下文菜单删除ROI。若要禁用此上下文菜单项,请设置“可删除的”.当设置为时,仍然可以通过调用删除函数,指定ROI的句柄作为输入。

可以交互放置ROI的轴的区域,指定为由逗号分隔的对组成的“DrawingArea”这个表中的一个值。

价值 描述
“汽车” 绘图区域是当前轴的限制(默认)。
“无限” 绘制区域没有边界,可以绘制或拖动roi以超出轴的限制。
[x, y, w h] 绘图区域限制为从(xy),与宽度w和高度h

ROI表面的透明度,指定为由逗号分隔的对组成“FaceAlpha”和值域内的标量值[0, 1].当值为1时,ROI面是完全不透明的。当值为0时,ROI面完全透明。

ROI面可以捕获单击,指定为由逗号分隔的对组成“FaceSelectable”还有价值真正的.当真正的(默认),ROI面可以捕获点击。当时,ROI面无法捕捉点击。

中的ROI句柄的可见性孩子们属性的父属性,指定为逗号分隔的对,由“HandleVisibility”这个表中的一个值。

价值 描述
“上” 对象句柄总是可见的(默认)。
“关闭” 对象句柄始终是隐藏的。
“回调” 对象句柄在回调或回调调用的函数中可见,但在从命令行调用的函数中不可见。

ROI的交互性,指定为逗号分隔的对,由“InteractionsAllowed”这个表中的一个值。

价值 描述
“所有” ROI是完全可交互的(默认)。
“没有” ROI是不可交互的,并且没有可见的拖拽点。
“翻译” ROI可以在绘图区域内平移(移动),但不能重新塑形。
“重塑” 可以在绘图区域内重新塑造ROI,但不能进行平移。

ROI标签,指定为逗号分隔的对,由“标签”和字符向量或字符串。默认情况下,此属性被设置为空数组(), ROI没有标签。

文本背景的透明度,指定为由逗号分隔的对组成“LabelAlpha”和范围[0 1]中的标量值。当设置为1,文本背景是完全不透明的。当设置为0时,文本背景完全透明。

标签文本颜色,指定为由逗号分隔的对组成“LabelTextColor”和MATLABColorSpec(颜色规格)价值。强度值必须在[0,1]范围内。

ROI标签的可见性,指定为由逗号分隔的对组成“LabelVisible”其中一个值。

价值 描述
“上” 当ROI可见时,标签也可见标签属性为非空(默认值)。
“徘徊”

只有当鼠标悬停在ROI上时,标签才可见。

“关闭” 标签不可见。

ROI边缘的宽度,指定为由逗号分隔的对组成“线宽”一个正的点数。默认值是每屏幕像素点数的三倍。

标记大小,指定为逗号分隔的对,由“MarkerSize”一个正的点数。

ROI父元素,指定为逗号分隔的对,由“父”和一个UIAxes对象。有关在uiaxis中使用ROI的信息,包括重要的限制,请参见使用应用程序设计器创建的应用程序中的roi

ROI的位置,指定为由逗号分隔的对组成“位置”和一个n-by-2数组的形式[(x1, y1;…;xn yn).每一行指定多边形ROI顶点的位置。当您绘制或移动ROI时,此值会自动更改。

ROI的选择状态,指定为逗号分隔的对,由“选择”而且真正的.您也可以交互地设置这个值。例如,单击ROI选择它并将此值设置为真正的.同样地,如果你ctrl - click,将其取消选择并将此值设置为

选择时ROI的颜色,指定为由逗号分隔的对组成“SelectedColor”和MATLABColorSpec(颜色规格).如果“SelectedColor”设置为“没有”的值颜色定义所有状态的ROI颜色,无论是否选中。

例子:“绿色”

例子:‘g’

例子:[0 10 0]

ROI条的颜色,指定为逗号分隔的对,由“StripeColor和一个MATLABColorSpec(颜色规格)价值。如果你指定“StripeColor”时,ROI边缘为条纹状。属性所指定的值的组合“颜色”这个值。

例子:“绿色”

例子:‘g’

例子:[0 10 0]

标记来与ROI关联,指定为由逗号分隔的对组成“标签”和字符向量或字符串标量。属性,使用标记值在对象层次结构中查找ROI对象findobj函数。

要与ROI关联的数据,指定为逗号分隔的对,由“用户数据”和任何MATLAB数据。例如,您可以指定标量、向量、矩阵、单元格数组、字符串、字符数组、表或结构。MATLAB不使用这些数据。

ROI可见性,指定为由逗号分隔的对组成“可见”而且“上”“关闭”,或作为数字或逻辑1(真正的)或0(假)。值为“上”等于真,和“关闭”等于false。因此,您可以将此属性的值用作逻辑值。该值存储为类型的on/off逻辑值matlab.lang.OnOffSwitchState

价值 描述
“上” 显示ROI(默认)。
“关闭” 隐藏ROI而不删除它。您仍然可以访问一个看不见的ROI的属性。

输出参数

全部折叠

多边形ROI,返回为多边形对象。

提示

  • ROI支持以下交金宝app互性,包括键盘快捷键。

    行为 键盘快捷键
    使绘制的线在15度角抓拍。 举行转变键时绘图。
    完成ROI的绘制(关闭)。

    双击,将在指针位置添加一个新顶点,并在第一个顶点上绘制一条线以关闭多边形。

    新闻输入,它会在指针位置添加一个新顶点,并在第一个顶点上绘制一条线以关闭多边形。

    右键单击,这不会添加新顶点,而是从前一个顶点关闭多边形。

    将指针放置在第一个顶点上,然后单击。

    取消绘制ROI。 新闻Esc.该函数返回一个有效值为空的ROI对象位置字段。
    在ROI中添加一个新顶点。

    将指针放置在ROI边缘上,双击。

    将指针放置在ROI边缘上,右键单击并选择添加顶点从上下文菜单。

    删除最近添加的顶点,但继续绘制。 新闻退格.该函数重绘从前一个顶点到指针当前位置的直线。你只能回到你画的第一个顶点。
    调整ROI的大小

    将指针放置在一个顶点上,然后单击并拖动。

    向ROI添加一个新顶点,然后单击并拖动。

    移除一个顶点。ROI重绘连接两个相邻顶点的直线。

    移动ROI。 将指针放置在ROI上(而不是顶点上)。指针变成一个芙蓉形状。单击并拖动以移动ROI。
    删除ROI。 将指针放置在ROI上的任意位置,然后右键单击。选择删除多边形从上下文菜单。方法还可以删除ROI删除对象的功能。
  • drawpolygon函数返回多边形ROI对象。创建之后,使用对象的这些功能来定制ROI的外观和行为。

    • 对象属性——ROI对象支持修改其外观或行为的属性。金宝app例如,要更改的颜色roi至黄,定其颜色财产,roi。Color = 'yellow'

    • 对象函数——ROI对象支持一组操作ROI的对象函数。金宝app例如,如果希望在创建ROI后暂停MATLAB命令行,请调用等待对象的功能。

    • 事件通知——当某些事件(如移动或单击)发生在ROI上时,ROI对象可以通知您的代码。要接收这些通知,请使用addlistener对象函数的设置听众针对特定事件。在侦听器中,指定一个事件,例如“ROIMoved”,以及事件发生时执行的回调函数。当ROI通过侦听器通知应用程序时,它返回特定于事件的数据。例如,用“ROIMoved”事件时,ROI对象返回其先前位置和当前位置。

    属性使用事件侦听器的示例多边形对象,看到设置多边形ROI事件的监听器.有关这些功能的详细信息,请参见多边形对象的文档。

兼容性的考虑

全部展开

不建议从R2020a开始

在R2018b中引入