主要内容

drawassisted

在对象边缘的帮助下创建可定制的写意ROI

描述

drawassisted函数创建AssistedFreehand对象,指定一个写意感兴趣区域(ROI)的形状和位置,该区域遵循图像中对象的轮廓。您可以通过使用鼠标在图像上绘制ROI,或者通过使用名称-值参数以编程方式创建ROI。您还可以指定ROI的初始外观和行为。

辅助徒手ROI跟踪选定路径点之间的对象边缘。

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

roi= drawassisted创建一个AssistedFreehand对象,并允许在当前轴上交互式绘制手绘的感兴趣区域(ROI)。的AssistedFreehandROI使用底层图像中的边缘来“协助”您绘制形状。

若要绘制ROI,请将指针放置在图像上,单击并释放以放置第一个顶点(路径点),然后移动指针以绘制直线。当您移动指针以绘制形状时,线条将自动跟随底层图像中的边缘轮廓。在绘制时,单击以沿直线放置顶点。若要完成ROI并关闭形状,请双击。有关使用ROI的详细信息,包括键盘快捷键和上下文菜单选项,请参见提示

roi= drawassisted (hImage在指定的图像上创建ROIhImage

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

例子

全部折叠

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

Im = imread(“peppers.png”);imshow (im)

绘制一个辅助徒手ROI。

H = drawassisted;

创建ROI的掩码。

bw = createMask(h);

创建一个alpha矩阵,指定源图像在每个像素处的透明度。

alpha = imguidedfilter(单个(bw),im,“DegreeOfSmoothing”2);

显示目标图像。

目标= imread(“fabric.png”);imshow(目标)

将源图像和alpha矩阵调整为与目标图像相同的大小。

阿尔法马特= imresize(阿尔法马特,[大小(目标,1),大小(目标,2)]);Im = imresize(Im,[size(目标,1),size(目标,2)]);

将源ROI混合到目标图像中。

融合=单一(im)。*alphamat + (1-alphamat).*single(目标);Fused = uint8(融合);imshow(融合)

将图像读入工作区。

I = imread(“cameraman.tif”);

显示图像。使用imshow返回值以获取显示图像的句柄。要创建AssistedFreehandROI需要一个底层图像。

img = imshow(I);

在底层图像的帮助下,在图像上绘制一个辅助的徒手ROI。

ROI = drawassisted(img,“颜色”“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的图像,指定为图像对象。

名称-值参数

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

例子:h = drawassisted(Color="y")创建一个黄色AssistedFreehand对象

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

例子:h = drawassisted("Color","y")创建一个黄色AssistedFreehand对象

关闭指定为的徒手ROI数字的或逻辑的1真正的)或0.当真正的,drawassisted函数通过将绘制的最后一个路点连接到绘制的第一个路点来关闭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表面的透明度,指定为范围[0,1]中的数字。当值为1时,ROI面完全不透明。当值为0时,ROI面完全透明。

ROI面可以捕获点击,指定为数字的或逻辑的1真正的)或0.当真正的时,ROI面捕获鼠标点击。当时,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个像素。

的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边缘的平滑,指定为非负数。的drawassisted函数过滤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数据。例如,您可以指定标量、向量、矩阵、单元格数组、字符串、字符数组、表或结构。的drawassisted对象不使用此数据。

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

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

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

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

输出参数

全部折叠

辅助写意ROI,返回为AssistedFreehand对象。

提示

  • 命令执行常用任务的方法AssistedFreehandROI。

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

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

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

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

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

    调整ROI的大小。

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

    添加一个路径点。

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

    移除一个路径点。

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

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

    能力 万博1manbetx
    对象属性

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

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

    roi。颜色=“黄色”

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

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

    属性使用事件侦听器的示例AssistedFreehand对象,看到为辅助写手事件设置监听器

版本历史

在R2018b中引入

全部展开

不建议从R2020a开始