Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

poly2mask

Convierta la máscara de polígono de región de interés (ROI) a región

Descripción

ejemplo

BW = poly2mask(xi,yi,m,n) calcula una máscara de región de interés (ROI) binaria, de tamaño por-, de un polígono de ROI con vértices en coordenadas y. cierra el polígono automáticamente, si el Polígono no está ya cerrado.BWmnxiyipoly2mask

La función establece los píxeles que están dentro del polígono y establece los píxeles fuera del polígono.poly2mask10 Para obtener más información sobre cómo clasificar los píxeles que están parcialmente encerrados en el ROI, consulte.Algoritmo

Ejemplos

contraer todo

Especifique las coordenadas x e y del polígono.

x = [63 186 54 190 63]; y = [60 60 209 204 60];

Cree la máscara especificando el tamaño de la imagen.

bw = poly2mask(x,y,256,256);

Mostrar la máscara, dibujando una línea alrededor del polígono.

imshow(bw) hold on plot(x,y,'b','LineWidth',2) hold off

Defina dos conjuntos de puntos aleatorios para las coordenadas x e y.

x = 256*rand(1,4); y = 256*rand(1,4); x(end+1) = x(1); y(end+1) = y(1);

Cree la máscara.

bw = poly2mask(x,y,256,256);

Visualice la máscara y dibuje una línea alrededor del polígono.

imshow(bw) hold on plot(x,y,'b','LineWidth',2) hold off

Argumentos de entrada

contraer todo

-o-coordenada de los vértices de polígono, especificado como un vector numérico.xy La longitud de y debe coincidir.xiyi

Tipos de datos: double

Número de filas de la máscara, especificadas como un entero positivo.

Tipos de datos: double

Número de columnas de la máscara, especificadas como un entero positivo.

Tipos de datos: double

Argumentos de salida

contraer todo

Imagen binaria, devuelta como una matriz lógica.mn

Tipos de datos: logical

Sugerencias

  • Para especificar un polígono que incluya un conjunto rectangular determinado de píxeles, haga que los bordes del polígono se encuentran a lo largo de los bordes exteriores de los píxeles delimitadores, en lugar del centro de los píxeles.

    Por ejemplo, para incluir píxeles en las columnas 4 a 10 y las filas 4 a 10, puede especificar los vértices del polígono de la siguiente manera:

    x = [4 10 10 4 4]; y = [4 4 10 10 4]; mask = poly2mask(x,y,12,12)
    mask =       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

    En este ejemplo, el polígono pasa por el centro de los píxeles delimitadores, con el resultado de que solo algunos de los píxeles delimitadores deseados se determinan dentro del polígono (los píxeles de la fila 4 y la columna 4 y no en el polígono). Para incluir estos elementos en el polígono, utilice valores fraccionarios para especificar el borde exterior de la 4ª fila (3,5) y la fila 10 (10,5), y el borde exterior de la 4ª columna (3,5) y el borde exterior de la 10ª columna (10,5) como vértices, como en el ejemplo siguiente :

    x = [3.5 10.5 10.5 3.5 3.5]; y = [3.5 3.5 10.5 10.5 3.5]; mask = poly2mask(x,y,12,12)
    mask =       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

Algoritmos

Al crear una máscara de región de interés (ROI), debe determinar qué píxeles se incluyen en la región.poly2mask Esta determinación puede ser difícil cuando los píxeles del borde de una región solo están parcialmente cubiertos por la línea del borde. La figura siguiente ilustra una región triangular de interés, examinando en un Close-up uno de los vértices del ROI. La figura muestra cómo los píxeles pueden estar parcialmente cubiertos por el borde de una región de interés.

Los píxeles del borde de un ROI solo están parcialmente cubiertos por Border

Para determinar qué píxeles se encuentran en la región, utiliza el siguiente algoritmo:poly2mask

  1. Divida cada píxel en una cuadrícula de 5 por 5 subpíxeles.

    La figura muestra el píxel que contiene el vértice del ROI mostrado anteriormente con esta cuadrícula de 5 por 5 subpíxeles.

  2. Ajuste la posición de los vértices.

    desplaza cada vértice del polígono a la intersección más cercana de la cuadrícula de subpíxeles.poly2mask Observe cómo redondea y coordina la esquina de cuadrícula de subpíxeles más cercana.poly2maskxy Esto crea un segundo polígono modificado. La figura muestra el vértice modificado con una "X" roja.

  3. Dibuje un trazado entre los vértices ajustados.

    forma una ruta de cada vértice ajustado al siguiente, siguiendo los bordes de la cuadrícula de subpíxeles.poly2mask La figura muestra una porción de este polígono modificado por las líneas oscuras gruesas.

  4. Determine qué píxeles del borde se encuentran dentro del polígono.

    utiliza la siguiente regla para determinar qué píxeles del borde se encuentran dentro del polígono: Si el subpíxel central del píxel está dentro de los límites definidos por la ruta entre los vértices ajustados, el píxel se encuentra dentro de la región.poly2mask

    En la siguiente figura, los subpíxeles centrales de los píxeles del borde del ROI están sombreados en un color gris oscuro. Los píxeles dentro del polígono se sombrean con un gris más claro. Tenga en cuenta que el píxel que contiene el vértice no forma parte del ROI porque su píxel central no está dentro del polígono modificado.

Consulte también

|

Introducido antes de R2006a