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

Convertir polígono de región de interés (ROI) en máscara de región

Descripción

ejemplo

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

La función establece los píxeles que se encuentran dentro del polígono y establece los píxeles fuera del polígono en .poly2mask10 Para obtener más información sobre cómo clasificar los píxeles que están parcialmente desincluidoses por 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);

Muestre 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);

Muestre 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 vértices poligonales, especificados 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, especificado como un entero positivo.

Tipos de datos: double

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

Tipos de datos: double

Argumentos de salida

contraer todo

Imagen binaria, devuelta como una matriz lógica -by-.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 sitan 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 poligonales como este:

    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 se determina que algunos de los píxeles delimitadores deseados están 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 4a fila (3.5) y la 10a fila (10.5), y el borde exterior de la 4a columna (3.5) y el borde exterior de la 10a 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 en el borde de una región sólo están parcialmente cubiertos por la línea de borde. La siguiente figura ilustra una región triangular de interés, examinando en primer plano uno de los vértices del ROI. La figura muestra cómo los píxeles se pueden cubrir parcialmente por el borde de una región de interés.

Los píxeles en el borde de un ROI sólo están parcialmente cubiertos por la frontera

Para determinar qué píxeles están en la región, utilice el siguiente algoritmo:poly2mask

  1. Divide 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 subpíxeles de 5 por 5.

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

    mueve cada vértice del polígono a la intersección más cercana de la cuadrícula de subpíxeles.poly2mask Observe cómo las rondas y coordenadas a 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 vértices ajustados.

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

  4. Determine qué píxeles de borde están dentro del polígono.

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

    En la figura siguiente, los subpíxeles centrales de los píxeles en el borde del ROI se sombrean 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