主要内容

drawfreehand

创建可定制的手绘ROI

描述

drawfreehand函数创建徒手画的对象,它指定写意感兴趣区域(ROI)的形状和位置。您可以通过使用鼠标在图像上绘制ROI,或者通过使用名称-值参数以编程方式创建ROI。您还可以指定ROI的初始外观和行为。

徒手ROI跟踪图像中物体的边缘。

创建ROI后,可以使用对象属性、对象函数和事件通知自定义ROI的形状、位置、外观和行为。有关使用这些功能的详细信息,请参见提示

例子

h= drawfreehand创建一个徒手画的对象,并允许在当前轴上交互式地绘制圆形感兴趣区域(ROI)。

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

h= drawfreehand (斧头在指定的轴上创建ROI斧头

h= drawfreehand (___名称,值使用一个或多个名称-值参数修改ROI的外观和行为。

例子

全部折叠

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

imshow (imread (“yellowlily.jpg”))

画一个徒手ROI。

H =手绘;

填充手绘ROI的表面,并禁用选择ROI的能力。单击和拖动鼠标时,ROI不会移动。

h.FaceAlpha = 1;h.FaceSelectable = false;

将图像读入工作区。

I = imread(“cameraman.tif”);

显示图像。

imshow(我);

在图像上画一个徒手ROI。

ROI =徒手画(“颜色”“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对象。有关在uiaxis中使用ROI的信息,包括重要的限制,请参见使用应用程序设计器创建的应用程序中的roi

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

例子:h = drawfreehand(Color="y")创建一个黄色徒手画的对象。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:h = drawfreehand("Color","y")创建一个黄色徒手画的对象。

关闭指定为的徒手ROI数字的或逻辑的1真正的)或0.当真正的,drawfreehand函数通过将绘制的最后一个路点连接到绘制的第一个路点来关闭ROI。

ROI颜色,指定为RGB三元组、颜色名称或短颜色名称。

您可以使用RGB三元组指定任何颜色。RGB三元组是一个3元素的行向量,其元素指定颜色的红、绿和蓝分量的强度。强度必须在[0,1]范围内。

您可以通过字符串标量或字符向量的名称指定一些常见颜色。该表列出了已命名的颜色选项和等效的RGB三元组。

颜色名称 短名称 RGB值 外观
“红色” “r” [10 0 0]

纯红色矩形

“绿色” ‘g’ [0 10 0]

一个纯绿色的矩形

“蓝” “b” [0 0 1]

一个纯蓝色的长方形

“青色” “c” [0 1 1]

纯青色矩形

“红色” “米” [10 0 1]

一个纯洋红色的长方形

“黄色” “y” [11 10 0]

纯黄色矩形

“黑” “k” [0 0 0]

一个黑色的矩形

“白色” ' w ' [1 1 1]

一个白色的矩形

这里是RGB三组的默认颜色,MATLAB®在许多类型的图中使用。

RGB值 外观
[0 0.4470 0.7410]

一个中蓝色的矩形

[0.8500 0.3250 0.0980]

红橙色矩形

[0.9290 0.6940 0.1250]

深黄色的长方形

[0.4940 0.1840 0.5560]

深紫色矩形

[0.4660 0.6740 0.1880]

一个浅绿色的长方形

[0.3010 0.7450 0.9330]

浅蓝色的长方形

[0.6350 0.0780 0.1840]

暗红色的长方形

例子:“颜色”,“r”

例子:“颜色”,“绿色”

例子:'Color',[0 0.4470 0.7410]

右键单击指定为的ROI时显示的上下文菜单快捷菜单对象。控件可以创建自定义上下文菜单uicontextmenu函数,然后配置上下文菜单属性。

上下文菜单提供了删除ROI的选项,指定为数字的或逻辑的1真正的)或0.当值为真正的,您可以使用上下文菜单交互地删除ROI。当值为时,删除感兴趣区域的上下文菜单选项被禁用。

方法,可以在上下文菜单之外删除ROI删除函数。

可以交互地将ROI放置在其中的轴的区域,指定为本表中的值之一。

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

ROI表面的透明度,指定为范围[0,1]中的数字。当值为1时,ROI面完全不透明。当值为0时,ROI面完全透明。

ROI面可以捕获点击,指定为数字的或逻辑的1真正的)或0.当真正的时,ROI面捕获鼠标点击。当时,ROI面不捕获鼠标单击。

中的ROI句柄的可见性孩子们属性,指定为本表中的值之一。

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

ROI的交互性,指定为本表中的值之一。

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

ROI标签,指定为字符向量或字符串标量。默认情况下,ROI没有标签().

文本背景的透明度,指定为范围[0,1]中的数字。当设置为1时,文本背景完全不透明。当设置为0时,文本背景完全透明。

标记文本颜色,指定为RGB三元组、颜色名称或短颜色名称。

您可以使用RGB三元组指定任何颜色。RGB三元组是一个3元素的行向量,其元素指定颜色的红、绿和蓝分量的强度。强度必须在[0,1]范围内。

您可以通过字符串标量或字符向量的名称指定一些常见颜色。该表列出了已命名的颜色选项和等效的RGB三元组。

颜色名称 短名称 RGB值 外观
“红色” “r” [10 0 0]

纯红色矩形

“绿色” ‘g’ [0 10 0]

一个纯绿色的矩形

“蓝” “b” [0 0 1]

一个纯蓝色的长方形

“青色” “c” [0 1 1]

纯青色矩形

“红色” “米” [10 0 1]

一个纯洋红色的长方形

“黄色” “y” [11 10 0]

纯黄色矩形

“黑” “k” [0 0 0]

一个黑色的矩形

“白色” ' w ' [1 1 1]

一个白色的矩形

下面是MATLAB在许多类型的图中使用的默认颜色的RGB三元组。

RGB值 外观
[0 0.4470 0.7410]

一个中蓝色的矩形

[0.8500 0.3250 0.0980]

红橙色矩形

[0.9290 0.6940 0.1250]

深黄色的长方形

[0.4940 0.1840 0.5560]

深紫色矩形

[0.4660 0.6740 0.1880]

一个浅绿色的长方形

[0.3010 0.7450 0.9330]

浅蓝色的长方形

[0.6350 0.0780 0.1840]

暗红色的长方形

例子:‘LabelTextColor’,‘r’

例子:“LabelTextColor”、“绿色”

例子:'LabelTextColor',[0 0.4470 0.7410]

标签可见性,指定为这些值之一。

价值 描述
“上” 当ROI可见时,标签也可见。
“徘徊” 只有当鼠标悬停在ROI上时,标签才可见。
“关闭” 标签不可见。

ROI边界的宽度,指定为以点为单位的正数。默认值是每屏幕像素点数的三倍,这样边界就有三个像素宽。

标记大小,以正数表示。默认值是每屏幕像素点数的8倍,例如标记的大小为8个像素。

在交互放置期间控制徒手绘图样式,指定为数字的或逻辑的0)或1真正的.当值为,一个简单的点击和拖动手势完成徒手ROI。当值为真正的,多个点击和拖动手势可以与直边相结合,形成更复杂的写意ROI形状。

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

ROI的位置,指定为n-by-2数值矩阵,其中n是定义ROI的顶点或点的数量。每一行表示[xy顶点或点的坐标。

ROI的选择状态,指定为数字的或逻辑的0)或1真正的

选择ROI时的颜色,指定为RGB三元组、颜色名称、短颜色名称或“没有”.如果你指定“没有”的值颜色定义所有状态的ROI颜色,无论是否选中。

您可以使用RGB三元组指定任何颜色。RGB三元组是一个3元素的行向量,其元素指定颜色的红、绿和蓝分量的强度。强度必须在[0,1]范围内。

您可以通过字符串标量或字符向量的名称指定一些常见颜色。该表列出了已命名的颜色选项和等效的RGB三元组。

颜色名称 短名称 RGB值 外观
“红色” “r” [10 0 0]

纯红色矩形

“绿色” ‘g’ [0 10 0]

一个纯绿色的矩形

“蓝” “b” [0 0 1]

一个纯蓝色的长方形

“青色” “c” [0 1 1]

纯青色矩形

“红色” “米” [10 0 1]

一个纯洋红色的长方形

“黄色” “y” [11 10 0]

纯黄色矩形

“黑” “k” [0 0 0]

一个黑色的矩形

“白色” ' w ' [1 1 1]

一个白色的矩形

下面是MATLAB在许多类型的图中使用的默认颜色的RGB三元组。

RGB值 外观
[0 0.4470 0.7410]

一个中蓝色的矩形

[0.8500 0.3250 0.0980]

红橙色矩形

[0.9290 0.6940 0.1250]

深黄色的长方形

[0.4940 0.1840 0.5560]

深紫色矩形

[0.4660 0.6740 0.1880]

一个浅绿色的长方形

[0.3010 0.7450 0.9330]

浅蓝色的长方形

[0.6350 0.0780 0.1840]

暗红色的长方形

例子:‘SelectedColor’,‘r’

例子:“SelectedColor”、“绿色”

例子:'SelectedColor',[0 0.4470 0.7410]

交互放置后应用于ROI边缘的平滑,指定为非负数。的drawfreehand函数过滤x而且y使用默认标准偏差为1的高斯平滑核的ROI坐标。高斯滤波器的大小为2 *装天花板(2 *平滑)+ 1.只有在完成绘图后才能看到平滑效果。

ROI条纹的颜色,指定为RGB三元组、颜色名称、短颜色名称或“没有”.如果你指定“没有”时,则ROI边缘为指定的纯色颜色.否则,ROI的边缘是条纹状的,颜色在指定的颜色之间交替颜色而且StripeColor

您可以使用RGB三元组指定任何颜色。RGB三元组是一个3元素的行向量,其元素指定颜色的红、绿和蓝分量的强度。强度必须在[0,1]范围内。

您可以通过字符串标量或字符向量的名称指定一些常见颜色。该表列出了已命名的颜色选项和等效的RGB三元组。

颜色名称 短名称 RGB值 外观
“红色” “r” [10 0 0]

纯红色矩形

“绿色” ‘g’ [0 10 0]

一个纯绿色的矩形

“蓝” “b” [0 0 1]

一个纯蓝色的长方形

“青色” “c” [0 1 1]

纯青色矩形

“红色” “米” [10 0 1]

一个纯洋红色的长方形

“黄色” “y” [11 10 0]

纯黄色矩形

“黑” “k” [0 0 0]

一个黑色的矩形

“白色” ' w ' [1 1 1]

一个白色的矩形

下面是MATLAB在许多类型的图中使用的默认颜色的RGB三元组。

RGB值 外观
[0 0.4470 0.7410]

一个中蓝色的矩形

[0.8500 0.3250 0.0980]

红橙色矩形

[0.9290 0.6940 0.1250]

深黄色的长方形

[0.4940 0.1840 0.5560]

深紫色矩形

[0.4660 0.6740 0.1880]

一个浅绿色的长方形

[0.3010 0.7450 0.9330]

浅蓝色的长方形

[0.6350 0.0780 0.1840]

暗红色的长方形

例子:‘StripeColor’,‘r’

例子:“StripeColor”、“绿色”

例子:'StripeColor',[0 0.4470 0.7410]

标记与ROI相关联,指定为字符向量或字符串标量。属性在对象层次结构中使用标记值查找ROI对象findobj函数。

与ROI关联的数据,指定为任何MATLAB数据。例如,您可以指定标量、向量、矩阵、单元格数组、字符串、字符数组、表或结构。的drawfreehand对象不使用此数据。

ROI可见性,指定为“上”“关闭”,或作为数字或逻辑1真正的)或0).值为“上”等于真,和“关闭”等于false。该值存储为类型的on/off逻辑值OnOffSwitchState

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

位置点是路径点,指定为n-by-1逻辑向量n是定义ROI的点的数量。的长度路点的行数必须匹配位置名称-值参数。元素路点用值真正的确定要点位置矩阵是路径点。

路径点在ROI边缘上显示为圆形。通过用鼠标单击和拖动路径点,可以使用路径点来重塑ROI。移动路径点将修改所单击的路径点与相邻路径点之间的手绘区域。

输出参数

全部折叠

徒手ROI,返回为徒手画的对象。

提示

  • ROI支持以下交万博1manbetx互性,包括键盘快捷键。

    行为 键盘快捷键
    取消绘制ROI。 新闻Esc.该函数返回一个有效值为空的ROI对象位置财产。
    完成ROI的绘制(关闭)。

    双击,将在指针位置添加一个点,并绘制一条将该点与所绘制的第一个点连接起来的线,从而关闭ROI。

    右键单击,将绘制一条连接最后一个点和所绘制的第一个点的线。

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

    新闻输入,它绘制一条连接最后一个点和所绘制的第一个点的直线。

    调整ROI的大小。

    将指针定位在路径点上,然后单击并拖动。在此模式下,没有辅助功能(边对齐)。

    添加一个路径点。

    将指针定位在ROI的边缘,右键单击,选择添加路径.还可以将指针定位在ROI的边缘上,然后双击。

    移除一个路径点。

    将指针定位在路径点上,右键单击并选择删除路标

    移动ROI。 将指针置于ROI上方。指针变为芙蓉形状。单击并拖动以移动ROI。
    删除ROI。 将指针定位在ROI上(而不是顶点上),右键单击并选择删除徒手画的从上下文菜单。控件,还可以以编程方式删除ROI删除函数。
  • drawfreehand函数创建徒手画的对象。创建对象后,可以使用这些对象功能修改ROI的形状、位置、外观和行为。

    能力 万博1manbetx
    对象属性

    ROI对象具有指定其形状、位置、外观和行为的属性。创建ROI对象后,使用点表示法更改属性。

    例如,要更改的颜色roi至黄,定其颜色属性:

    roi。颜色=“黄色”

    对象的功能 ROI对象具有操作ROI的对象函数。例如,如果希望在创建ROI后暂停MATLAB命令行,请使用等待函数。
    事件通知

    当某些事件发生时,例如单击ROI或移动ROI时,ROI对象可以通知代码。要接收事件通知,请设置听众.当ROI通过侦听器通知应用程序时,它返回特定于事件的数据。例如,用ROIMoved事件时,ROI对象返回其先前位置和当前位置。可以指定在事件发生时执行的回调函数。

    属性使用事件侦听器的示例徒手画的对象,看到为写意ROI事件设置监听器

版本历史

在R2018b中引入

全部展开

不建议从R2020a开始