文档

创建可拖动的,可调整大小的多边形

描述

一个对象封装图像上的交互式多边形。

您可以使用鼠标添加顶点和调整多边形的大小和位置。该多边形还有一个上下文菜单,用于控制其外观和行为的各个方面。有关更多信息,请参见使用

创建

语法

内嵌
H = impoly(hparent)
H = impoly(hparent,position)
H =内聚(___、名称、值)

描述

内嵌开始在当前轴上交互式放置多边形,并返回对象。

H =内聚(hparent属性指定的对象上开始多边形的交互式放置hparent

例子

H =内聚(hparent位置创建一个可拖动的,可调整大小的多边形,其顶点位于定义的坐标位置

例子

H =内聚(___名称,值指定控制多边形行为的名-值对。

输入参数

全部展开

父对象的句柄,指定为句柄。父对象通常是一个axis对象,但也可以是任意其他对象hggroup对象。

多边形顶点的位置,指定为n2矩阵。这两列定义x- - -y的-坐标,分别为n顶点。

名称-值对参数

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

全部展开

位置约束函数,指定为逗号分隔的对,由“PositionConstraintFcn”和一个函数句柄。fcn在拖动鼠标时调用。您可以使用此函数来控制可以拖动多边形的位置。参见帮助setPositionConstraintFcn函数获取有关有效函数句柄的信息。

多边形是封闭的,指定为由逗号分隔的对组成“关闭”而且真正的.当设置为真正的(默认),创建一个闭合多边形,也就是说,它在指定的最后一个顶点和指定的第一个顶点之间绘制一条直线来创建一个闭合区域。当关闭不连接最后一个顶点与第一个顶点,创建一个开放多边形(或折线)。

数据类型:逻辑

属性

全部展开

ROI可以被删除,指定为真正的

数据类型:逻辑

使用

当你打电话时使用交互式语法,指针将更改为十字线当覆盖图像时。单击和拖动鼠标定义多边形的顶点,并调整多边形的大小、形状和位置。默认情况下,绘制连接所绘制的最后一个点和第一个点的直线,但可以使用关闭参数。

多边形还支持上下文菜单,您可以使用万博1manbetx该菜单控制其外观和行为的各个方面。上下文菜单中的选项是将指针定位在多边形的边缘(或区域内的任何位置)还是某个顶点上。该图显示了当指针位于多边形上但不在顶点上时的上下文菜单。

表中列出了支持的交互行为万博1manbetx

互动行为 描述
关闭多边形。

使用以下任何一种机制:

  • 将指针移到所选多边形的初始顶点上。指针变为圆形.单击任意一个鼠标按钮。

  • 双击鼠标左键。该操作在鼠标下方的点上创建一个顶点,并绘制一条直线将该顶点与初始顶点连接起来。

  • 单击鼠标右键。这个动作绘制一条连接最后一个选中顶点和初始顶点的直线;它不会创建一个新的顶点。

添加一个新顶点。 将指针移到多边形的一条边上。按住一个关键。指针的形状发生变化.单击鼠标左键在该线的该位置创建一个新顶点。
移动一个顶点。(重塑多边形。) 将指针移动到一个顶点上。指针变为圆形.单击并拖动顶点到它的新位置。
删除顶点。 将指针移动到一个顶点上。形状变成了圆形.右键单击并选择删除顶点从顶点上下文菜单。此操作删除顶点并调整多边形的形状,在与被删除顶点相邻的两个顶点之间绘制一条新的直线。
删除多边形 将指针移动到多边形内部或定义多边形的某一行上,而不是移动到顶点上。右键单击并选择删除从上下文菜单。若要从上下文菜单中删除此选项,请设置可删除的属性为false:H = impoly();h.Deletable = false;
移动多边形。 将指针移动到多边形内部。指针变成一个芙蓉形状.单击并拖动鼠标来移动多边形。
改变多边形的颜色 将指针移动到多边形内部。右键单击并选择设置颜色从上下文菜单。
检索顶点的坐标 将指针移动到多边形内部。右键单击并选择副本的位置从上下文菜单。一个副本n数组中包含x- - -y-每个顶点到剪贴板的坐标。n指定的顶点数。

对象的功能

每一个对象支持许多方万博1manbetx法。类型方法不查看完整的列表。

addNewPositionCallback 向ROI对象添加新位置回调
createMask 在图像中创建蒙版
删除 删除句柄对象
色鬼 获取用于绘制ROI对象的颜色
getPosition 返回ROI对象的当前位置
getPositionConstraintFcn 返回函数句柄到当前位置约束函数
removeNewPositionCallback 从ROI对象中删除新位置回调
重新开始 恢复MATLAB命令行执行
setClosed 设置ROI对象的闭合行为
改变颜色 设置用于绘制ROI对象的颜色
setConstrainedPosition 将ROI对象设置为新位置
setPosition 移动ROI对象到新位置
setPositionConstraintFcn 设置ROI对象的位置约束函数
setVerticesDraggable 设置ROI对象的顶点行为
等待 阻塞MATLAB命令行,直到ROI创建完成

例子

全部折叠

显示图像。

imshow (“gantrycrane.png”

在图像上绘制一个多边形,指定五个顶点的位置。

H = impoly(gca,[188,30;189142;93141;13日,41;14日,29]);

设置多边形的颜色为黄色。

改变颜色(h,“黄色”);

为新的位置回调定义一个函数。当多边形被移动时,这个函数显示多边形的当前位置。

addNewPositionCallback(h, @(p) title(mat2str(p,3)));

创建约束多边形移动的函数,使用makeConstrainToRectFcn,指定图像的边界为界限。使用强制边界约束函数setPositionConstraintFcn

fcn = makeConstrainToRectFcn(“不”甘氨胆酸,(,“XLim”甘氨胆酸),得到(,“YLim”));setPositionConstraintFcn (h, fcn);

显示图像。

图imshow (“gantrycrane.png”);

创建一个多边形,指定几个顶点,但让它未完成,以便您可以交互式地完成它。这个例子关闭所以多边形是开放的。当您将光标移动到多边形的一个端点上时,光标形状将变为圆形。

H = impoly(gca,[203,30;202142;294142年),“关闭”、假);

完成多边形。抓住现有线路的一端。通过将线条拖到要创建的形状的另一个角来扩展线条。然后,在将光标定位到该线上时,按住一个键向直线添加顶点。一旦你创建了顶点,你可以把它拖到任何你想要的形状。继续拖动这条线,并根据需要添加顶点。有关更多信息,请参见使用

提示

如果你使用对于包含图像对象的轴,并且不指定位置约束函数,用户可以将多边形拖到图像范围之外并丢失多边形。类创建的轴一起使用时情节函数,当多边形被拖动到轴的范围之外时,轴的限制自动展开。

在R2007b中引入

这个话题有用吗?