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.

bwlabel

Etiquetar componentes conectados en imagen binaria 2D

Descripción

ejemplo

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

Opcionalmente, puede etiquetar los componentes conectados en una imagen binaria 2D usar una GPU (requiere ).Parallel Computing Toolbox™

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

[L,n] = bwlabel(___) también devuelve , el número de objetos conectados encontrados en .nBW

Ejemplos

contraer todo

Cree una pequeña imagen binaria.

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 4 objetos conectados.

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 para obtener las coordenadas de fila y columna del objeto con la etiqueta "2".find

[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 una matriz numérica o lógica 2D. Para la entrada numérica, los píxeles distintos de cero se consideran .on

Ejemplo: BW = imread('text.png');

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 conectados

Los píxeles están conectados si sus bordes se tocan. Dos píxeles adyacentes forman parte del mismo objeto si están encendidos y están conectados a lo largo de la dirección horizontal o vertical.

8 conectados

Los píxeles están conectados si sus bordes o esquinas se tocan. Dos píxeles adyacentes forman parte del mismo objeto si están encendidos y están conectados a lo largo de la dirección horizontal, vertical o diagonal.

Tipos de datos: double | logical

Argumentos de salida

contraer todo

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

Tipos de datos: double

Número de objetos conectados en , devueltos como un entero no negativo.BW

Tipos de datos: double

Sugerencias

  • Las funciones , , y todos los componentes conectados de proceso para imágenes binarias. reemplaza el uso de y .bwlabelbwlabelnbwconncompbwconncompbwlabelbwlabeln Utiliza significativamente menos memoria y a veces es más rápido que las otras funciones.

     Dimensión de entradaFormulario de salidaUso de la memoriaConectividad
    bwlabel2-DMatriz de etiquetas de doble precisiónAlto4 u 8
    bwlabelnN-DMatriz de etiquetas de doble precisiónAltoCualquier
    bwconncompN-DEstructura CCBajoCualquier
  • Puede utilizar la función junto con para devolver vectores de índices para los píxeles que componen un objeto específico.MATLAB®findbwlabel Por ejemplo, para devolver las coordenadas de los píxeles del objeto 2, escriba lo siguiente:.

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

    Puede mostrar la matriz de salida como una imagen indexada pseudocolor. Cada objeto aparece 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 calcular una matriz de etiquetas que tenga un tipo de datos más eficiente en memoria (por ejemplo, frente a ), utilice la función en la salida de .uint8doublelabelmatrixbwconncomp

  • Para extraer entidades de una imagen binaria utilizando con conectividad predeterminada, simplemente pase directamente mediante el comando .regionpropsBWregionpropsregionprops(BW)

  • La función puede aprovechar la optimización de hardware para los tipos de datos, y ejecutarse más rápido.bwlabellogicaluint8single La optimización del hardware requiere y ser imágenes 2D y ser 4 u 8.markermaskconn

Algoritmos

utiliza el procedimiento general descrito en referencia , pp. 40-48:bwlabel[1]

  1. La longitud de ejecución codifica la imagen de entrada.

  2. Escanee las corridas, asignando etiquetas preliminares y registrando equivalencias de etiquetas en una tabla de equivalencia local.

  3. Resuelva las clases de equivalencia.

  4. Vuelva a etiquetar las ejecuciones 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

Introducido antes de R2006a