主要内容

drawfreehand

创建可定制的手绘ROI

描述

drawfreehand函数创建一个徒手画的指定感兴趣的徒手区域(ROI)的形状和位置的对象。您可以通过使用鼠标在图像上绘制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 = drawfreehand;

填入徒手ROI的正面,并禁用选择ROI的功能。单击并拖动鼠标时,ROI不会移动。

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

将图像读入工作区。

我= imread (“cameraman.tif”);

显示图像。

imshow(我);

在图像上徒手画出ROI。

投资回报率= drawfreehand (“颜色”“r”);

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

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

allevents回调函数显示ROI的前一个位置和当前位置。

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

输入参数

全部折叠

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

名称-值参数

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

例子:“颜色”、“y”创建一个黄色徒手画的对象

关闭徒手ROI,指定为由逗号分隔的对“关闭”以及逻辑值真正的.如果真正的(默认),drawfreehand通过连接最后一个绘制的路点到第一个绘制的路点来关闭ROI。

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

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

您可以通过名称指定一些常用颜色作为字符串标量或字符向量。这个表列出了命名的颜色选项和等价的RGB三组。

颜色名称 短名称 RGB值 外观
“红色” “r” (1 0 0)

一个纯红色的长方形

“绿色” ‘g’ (0 1 0)

一个纯绿色的长方形

“蓝” “b” (0 0 1)

一个纯蓝色的长方形

“青色” “c” (0 1 1)

纯青色的长方形

“红色” “米” (1 0 1)

长方形纯品红色

“黄色” “y” (1 1 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)

暗红色的长方形

例子:“颜色”,“r”

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

例子:“颜色”,[0 0.4470 - 0.7410)

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

上下文菜单提供删除ROI的选项,指定为真正的.当值为真正的,您可以使用上下文菜单交互式地删除ROI。当值为时,删除ROI的上下文菜单选项被禁用。

在这两种情况下,您都可以使用删除函数。

轴的区域,您可以在其中交互式地放置ROI,指定为该表中的一个值。

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

ROI面透明度,指定为[0,1]范围内的一个数字。当值为1, ROI面是完全不透明的。当值为0, ROI面是完全透明的。

ROI面可以捕获点击,指定为真正的.当真正的(默认),ROI面捕捉鼠标点击。当, ROI面不捕捉鼠标点击。

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

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

ROI的交互性,在此表中指定为其中一个值。

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

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

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

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

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

您可以通过名称指定一些常用颜色作为字符串标量或字符向量。这个表列出了命名的颜色选项和等价的RGB三组。

颜色名称 短名称 RGB值 外观
“红色” “r” (1 0 0)

一个纯红色的长方形

“绿色” ‘g’ (0 1 0)

一个纯绿色的长方形

“蓝” “b” (0 0 1)

一个纯蓝色的长方形

“青色” “c” (0 1 1)

纯青色的长方形

“红色” “米” (1 0 1)

长方形纯品红色

“黄色” “y” (1 1 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)

暗红色的长方形

例子:‘LabelTextColor’,‘r’

例子:“LabelTextColor”、“绿色”

例子:“LabelTextColor”,[0 0.4470 - 0.7410)

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

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

ROI边界的宽度,以点数表示为正数。默认值是每个屏幕像素点数的3倍,因此边框是3个像素宽。

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

在交互放置期间控制徒手绘制样式,指定为逻辑值真正的.当值为,一个简单的点击和拖动手势即可完成徒手ROI。当值为真正的,多次点击和拖动手势可以结合直边,使一个更复杂的徒手ROI形状。

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

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

ROI的选择状态,指定为逻辑值真正的

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

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

您可以通过名称指定一些常用颜色作为字符串标量或字符向量。这个表列出了命名的颜色选项和等价的RGB三组。

颜色名称 短名称 RGB值 外观
“红色” “r” (1 0 0)

一个纯红色的长方形

“绿色” ‘g’ (0 1 0)

一个纯绿色的长方形

“蓝” “b” (0 0 1)

一个纯蓝色的长方形

“青色” “c” (0 1 1)

纯青色的长方形

“红色” “米” (1 0 1)

长方形纯品红色

“黄色” “y” (1 1 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)

暗红色的长方形

例子:‘SelectedColor’,‘r’

例子:“SelectedColor”、“绿色”

例子:“SelectedColor”,[0 0.4470 - 0.7410)

交互放置后ROI的平滑边缘,指定为非负数。的drawfreehand函数使用高斯平滑核的标准差来滤波xyROI的坐标。这个参数使用如下公式定义了过滤器的大小:2 *装天花板(2 *平滑)+ 1.只有在绘制完成后才能看到平滑效果。

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

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

您可以通过名称指定一些常用颜色作为字符串标量或字符向量。这个表列出了命名的颜色选项和等价的RGB三组。

颜色名称 短名称 RGB值 外观
“红色” “r” (1 0 0)

一个纯红色的长方形

“绿色” ‘g’ (0 1 0)

一个纯绿色的长方形

“蓝” “b” (0 0 1)

一个纯蓝色的长方形

“青色” “c” (0 1 1)

纯青色的长方形

“红色” “米” (1 0 1)

长方形纯品红色

“黄色” “y” (1 1 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)

暗红色的长方形

例子:‘StripeColor’,‘r’

例子:“StripeColor”、“绿色”

例子:“StripeColor”,[0 0.4470 - 0.7410)

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

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

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

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

位置点是路径点,指定为n-乘1的逻辑向量,其中n是定义ROI的点数。的长度路点的行数必须匹配位置名称-值参数。元素路点与价值真正的识别位置路径点矩阵。

路径点以圆形的形式出现在ROI边缘。您可以使用路径点来重塑ROI,方法是用鼠标单击和拖动路径点。移动的路点修改您单击的路点和相邻路点之间的手绘区域。

输出参数

全部折叠

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

提示

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

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

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

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

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

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

    调整ROI的大小(重塑)。

    将指针放置在路径点上,然后单击并拖动。在此模式下,没有任何辅助(捕捉到边缘)可用。

    添加一个路标。

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

    删除一个路标。

    将指针放置在路径点上,右键单击,然后选择删除路标

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

    能力 金宝app
    对象属性

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

    例如,要更改roi设置为黄色颜色属性:

    roi。颜色=“黄色”

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

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

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

兼容性的考虑

全部展开

不建议从R2020a开始

介绍了R2018b