主要内容

poly2mask

将感兴趣区域(ROI)多边形转换为区域掩模

描述

例子

BW= poly2mask (西n计算二值感兴趣区域(ROI)掩模,BW的大小——- - - - - -n,从一个顶点在坐标处的ROI多边形西.如果多边形还没有关闭,则poly2mask自动关闭多边形。

poly2mask函数将多边形内的像素设置为1并将多边形外的像素设置为0.有关对部分包含在ROI中的像素进行分类的更多信息,请参见算法

例子

全部折叠

指定多边形的x和y坐标。

X = [63 186 54 190 63];Y = [60 60 209 204 60];

创建指定图像大小的蒙版。

bw = poly2mask (x, y, 256256);

显示蒙版,在多边形周围画一条线。

imshow (bw)情节(x, y,“b”“线宽”, 2)

图中包含一个轴对象。axis对象包含两个类型为image, line的对象。

为x和y坐标定义两组随机点。

x = 256 *兰德(1,4);y = 256 *兰德(1,4);x(结束+ 1)= x (1);(结束+ 1)= y (1);

创建一个面具。

bw = poly2mask (x, y, 256256);

显示蒙版并在多边形周围画一条线。

imshow (bw)情节(x, y,“b”“线宽”, 2)

图中包含一个轴对象。axis对象包含两个类型为image, line的对象。

输入参数

全部折叠

x多边形顶点的坐标,指定为数字向量。的长度西必须匹配。

数据类型:

y多边形顶点的坐标,指定为数字向量。的长度西必须匹配。

数据类型:

掩码中的行数,指定为非负整数。

数据类型:

掩码中的列数,指定为非负整数。

数据类型:

输出参数

全部折叠

二进制图像,返回为——- - - - - -n逻辑矩阵。

数据类型:逻辑

提示

  • 若要指定包含给定矩形像素集的多边形,请使多边形的边缘位于边界像素的外边缘,而不是像素的中心。

    例如,要在第4列到第10列和第4行到第10行包含像素,你可以像这样指定多边形顶点:

    X = [4 10 10 4 4];Y = [4 4 10 10 4];掩码= poly2mask (x, y, 12日,12)
    掩码= 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    在本例中,多边形穿过边界像素的中心,结果只有一些所需的边界像素被确定在多边形内部(第4行和第4列中的像素,而不在多边形中)。要在多边形中包含这些元素,使用小分数值指定第4行(3.5)和第10行(10.5)的外缘,以及第4列(3.5)和第10列(10.5)的外缘为顶点,如下例所示:

    X = [3.5 10.5 10.5 3.5 3.5];Y = [3.5 3.5 10.5 10.5 3.5];掩码= poly2mask (x, y, 12日,12)
    掩码= 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

算法

在创建感兴趣区域(ROI)掩模时,poly2mask必须确定哪些像素包含在区域中。当区域边缘的像素仅部分被边界线覆盖时,这种确定可能会很困难。下图展示了一个感兴趣的三角形区域,在近距离检查ROI的一个顶点。该图显示了像素是如何被感兴趣区域的边界部分覆盖的。

ROI边缘上的像素只被边框部分覆盖

要确定区域中有哪些像素,poly2mask使用如下算法:

  1. 将每个像素划分为5 × 5的亚像素网格。

    图中用5 × 5的亚像素网格显示了包含ROI顶点的像素。

  2. 调整顶点的位置。

    poly2mask将多边形的每个顶点移动到亚像素网格的最近交点。请注意poly2maskxy坐标到最近的亚像素网格角。这将创建第二个修改过的多边形。图中用红色的“X”表示修改后的顶点。

  3. 绘制调整后的顶点之间的路径。

    poly2mask沿着亚像素网格的边缘,形成从每个调整过的顶点到下一个顶点的路径。下图显示了这个修改过的多边形的一部分,用粗的深色线条表示。

  4. 确定哪些边框像素位于多边形内。

    poly2mask使用以下规则来确定哪些边界像素位于多边形内:如果像素的中心亚像素位于由调整过的顶点之间的路径定义的边界内,则该像素位于区域内。

    下图中,ROI边界上像素的中心子像素被阴影为深灰色。多边形内的像素被着色为浅灰色。注意,包含顶点的像素不是ROI的一部分,因为它的中心像素不在修改后的多边形内。

扩展功能

另请参阅

|

之前介绍过的R2006a