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 imágenes binarias en 2-D

Descripción

ejemplo

L = bwlabel(BW) Devuelve la matriz de etiqueta que contiene las etiquetas de los objetos 8 conectados encontrados.LBW

Opcionalmente, puede etiquetar componentes conectados en una imagen binaria en 2-D usando una GPU (requiere).Parallel Computing Toolbox™ Para obtener más información, consulte.Procesamiento de imágenes en una GPU

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.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 mediante objetos conectados a 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 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

Cree una pequeña imagen binaria y cree un objeto para contenerlo.gpuArray

BW = gpuArray(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 mediante objetos conectados a 4.

L = bwlabel(BW,4)

Utilice el comando para obtener las coordenadas de fila y columna del objeto con la etiqueta "2".find

[r,c] = find(L == 2)

Argumentos de entrada

contraer todo

Imagen binaria, especificada como una matriz lógica o numérica 2-D. Para la entrada numérica, se consideran píxeles distintos de cero.on

Para etiquetar componentes conectados mediante una GPU, especifíquese como un que contenga una matriz lógica o numérica 2-D.BWgpuArray

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

Ejemplo: BW = gpuArray(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

Two-Dimensional Connectivities

4-connected

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

8-connected

Los píxeles se conectan si los bordes o las esquinas se tocan. Dos píxeles adyacentes forman parte del mismo objeto si están conectados y se conectan 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 componen un objeto; los píxeles etiquetados componen un segundo objeto; y así sucesivamente.12

Si los componentes conectados se etiquetan mediante una GPU, se devuelve como un contenedor que contiene una matriz de enteros no negativos.LgpuArray

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 de proceso conectados para imágenes binarias. reemplaza el uso de y.bwlabelbwlabelnbwconncompbwconncompbwlabelbwlabeln Utiliza significativamente menos memoria y es a veces más rápido que las otras funciones.

     Dimensión de entradaFormulario de salidaUso de memoriaConectividad
    bwlabel2-DMatriz de etiquetas de doble precisiónAlto4 u 8
    bwlabelnN-DMatriz de etiquetas de doble precisiónAltoCualquier
    bwconncompN-DCC structBajoCualquier
  • 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 con un tipo de datos más eficiente en memoria (por ejemplo, versus), utilice la función en la salida de.uint8doublelabelmatrixbwconncomp

  • Para extraer entidades de una imagen binaria utilizando la conectividad predeterminada, simplemente pase directamente a través del comando.regionpropsBWregionpropsregionprops(BW)

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

Algoritmos

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

  1. Run-length 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