Main Content

bwlabel

Etiquetar los componentes conectados de una imagen 2D binaria

Descripción

ejemplo

L = bwlabel(BW) devuelve la matriz de etiquetas L, que contiene las etiquetas de los 8 objetos conectados que se encuentran en BW.

L = bwlabel(BW,conn) devuelve una matriz de etiquetas, en la que conn especifica la conectividad.

[L,n] = bwlabel(___) también devuelve n, el número de objetos conectados que se encuentran en BW.

Ejemplos

contraer todo

Cree una imagen binaria pequeña.

BW = logical ([1     1     1     0     0     0     0     0
               1     1     1     0     1     1     0     0
               1     1     1     0     1     1     0     0
               1     1     1     0     0     0     1     0
               1     1     1     0     0     0     1     0
               1     1     1     0     0     0     1     0
               1     1     1     0     0     1     1     0
               1     1     1     0     0     0     0     0]);

Cree la matriz de etiquetas utilizando objetos de conectividad 4.

L = bwlabel(BW,4)
L = 8×8

     1     1     1     0     0     0     0     0
     1     1     1     0     2     2     0     0
     1     1     1     0     2     2     0     0
     1     1     1     0     0     0     3     0
     1     1     1     0     0     0     3     0
     1     1     1     0     0     0     3     0
     1     1     1     0     0     3     3     0
     1     1     1     0     0     0     0     0

Utilice el comando find para obtener las coordenadas de fila y columna del objeto etiquetado como "2".

[r, c] = find(L==2);
rc = [r c]
rc = 4×2

     2     5
     3     5
     2     6
     3     6

Argumentos de entrada

contraer todo

Imagen binaria, especificada como matriz numérica 2D o matriz lógica 2D. En la entrada numérica, cualquier píxel distinto de cero se considera 1 (true).

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Conectividad de píxeles, especificada como uno de estos valores.

Valor

Significado

Conectividades bidimensionales

4

Los píxeles se consideran conectados si comparten bordes. Dos píxeles contiguos forman parte del mismo objeto si ambos se encuentran y están conectados a lo largo de la dirección horizontal o vertical.

Center pixel connected to four pixels

El píxel actual se muestra en gris.

8

Los píxeles se consideran conectados si comparten bordes o vértices. Dos píxeles contiguos forman parte del mismo objeto si ambos se encuentran y están conectados a lo largo de la dirección horizontal, vertical o diagonal.

Center pixel connected to eight pixels

El píxel actual se muestra en gris.

Tipos de datos: double | logical

Argumentos de salida

contraer todo

Matriz de etiquetas de regiones contiguas, devuelta como matriz de enteros no negativos del mismo tamaño que BW. Los píxeles etiquetados como 0 son el fondo. Los píxeles etiquetados como 1 forman un objeto; los píxeles etiquetados como 2 forman un segundo objeto; y así sucesivamente.

Tipos de datos: double

Número de objetos conectados de BW, devuelto como entero no negativo.

Tipos de datos: double

Sugerencias

  • Esta función ordena los componentes conectados de izquierda a derecha según el extremo top-left de cada componente. Cuando varios componentes tienen la misma posición horizontal, la función ordena esos componentes de arriba abajo. Esta figura ilustra los extremos de dos regiones diferentes.

    Two differently shaped regions, each with their eight extrema points labeled

  • Las funciones bwlabel, bwlabeln y bwconncomp calculan componentes conectados para imágenes binarias. bwconncomp utiliza bastante menos memoria y, en ocasiones, es más rápida que las otras funciones.

     Dimensión de entradaForma de salidaUso de memoriaConectividad
    bwlabel2DMatriz de etiquetas de doble precisiónElevada4 u 8
    bwlabelnN dimensionesMatriz de etiquetas de doble precisiónElevadaCualquiera
    bwconncompN dimensionesEstructura CCBajaCualquiera
  • Puede utilizar la función MATLAB® find junto con bwlabel para devolver vectores de índices para los píxeles que componen un objeto específico. Por ejemplo, para devolver las coordenadas de los píxeles del objeto 2, introduzca lo siguiente:

    [r,c] = find(bwlabel(BW)==2)

    Puede mostrar la matriz de salida como imagen indexada de pseudocolor. Cada objeto se muestra en un color diferente, por lo que los objetos son más fáciles de distinguir que en la imagen original. Para obtener más información, consulte label2rgb.

  • Para extraer características de una imagen binaria utilizando regionprops con la conectividad predeterminada, pase BW directamente a regionprops utilizando el comando regionprops(BW).

  • La función bwlabel puede aprovechar la optimización del hardware para los tipos de datos logical, uint8 y single para ejecutarse más rápidamente. La optimización del hardware requiere que marker y mask sean imágenes 2D y que conn sea de conectividad 4 u 8.

Algoritmos

bwlabel utiliza el procedimiento general recogido en la referencia [1], págs. 40-48:

  1. Realice la compresión RLE de la imagen de entrada.

  2. Escanee las secuencias asignando etiquetas preliminares y registrando las equivalencias de etiquetas en una tabla de equivalencias local.

  3. Resuelva las clases de equivalencia.

  4. Vuelva a etiquetar las secuencias en función de las clases de equivalencia resueltas.

Referencias

[1] Haralick, Robert M., and Linda G. Shapiro, Computer and Robot Vision, Volume I, Addison-Wesley, 1992, pp. 28-48.

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

expandir todo