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.

bwlabeln

Etiquetar componentes conectados en imagen binaria

Descripción

ejemplo

L = bwlabeln(BW) devuelve una matriz de etiquetas, , que contiene etiquetas para los componentes conectados en .LBW

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

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

Ejemplos

contraer todo

Cree una imagen binaria 3D de muestra simple.

BW = cat(3, [1 1 0; 0 0 0; 1 0 0],...             [0 1 0; 0 0 0; 0 1 0],...             [0 1 1; 0 0 0; 0 0 1])
BW =  BW(:,:,1) =       1     1     0      0     0     0      1     0     0   BW(:,:,2) =       0     1     0      0     0     0      0     1     0   BW(:,:,3) =       0     1     1      0     0     0      0     0     1  

Etiquete los componentes conectados en la imagen.

bwlabeln(BW)
ans =  ans(:,:,1) =       1     1     0      0     0     0      2     0     0   ans(:,:,2) =       0     1     0      0     0     0      0     2     0   ans(:,:,3) =       0     1     1      0     0     0      0     0     2  

Argumentos de entrada

contraer todo

Imagen binaria, especificada como una matriz numérica o lógica de cualquier dimensión. 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 los valores de esta tabla. La conectividad predeterminada es para imágenes 2D y para imágenes 3D.826

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.

Conectividades tridimensionales

6 conectados

Los píxeles están conectados si sus caras se tocan. Dos píxeles adyacentes forman parte del mismo objeto si ambos están encendidos y están conectados en:

  • Una de estas direcciones: entrada, salida, izquierda, derecha, arriba y abajo

18 conectados

Los píxeles están conectados si sus caras o aristas se tocan. Dos píxeles adyacentes forman parte del mismo objeto si ambos están encendidos y están conectados en

  • Una de estas direcciones: entrada, salida, izquierda, derecha, arriba y abajo

  • Una combinación de dos direcciones, como el derecho hacia abajo o hacia arriba

26 conectados

Los píxeles están conectados si sus caras, aristas o esquinas se tocan. Dos píxeles adyacentes forman parte del mismo objeto si ambos están encendidos y están conectados en

  • Una de estas direcciones: entrada, salida, izquierda, derecha, arriba y abajo

  • Una combinación de dos direcciones, como el derecho hacia abajo o hacia arriba

  • Una combinación de tres direcciones, como en-derecha-arriba o en-izquierda-abajo

Para dimensiones más altas, utiliza el valor predeterminadobwlabeln conndef(ndims(BW),'maximal').

La conectividad también se puede definir de una manera más general para cualquier dimensión especificando una matriz de 3 por 3 por ... por 3 de s y s.01 Los elementos -valued definen ubicaciones de vecindad relativas al elemento central de .1conn Tenga en cuenta que debe ser simétrico sobre su elemento central.conn Consulte para obtener más información.Especificación de conectividades personalizadas

Tipos de datos: double | logical

Argumentos de salida

contraer todo

Matriz de etiquetas, devuelta como una 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

Matriz de etiquetas de regiones contiguas, devuelta como una matriz 2D de enteros no negativos de la clase .double La región th incluye todos los elementos que tienen valor .kLk El número de objetos y taladros representados por es igual a .Lmax(L(:)) Los elementos de valor cero de componen el fondo.L

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.

    FunciónDimensión de entradaFormulario de salidaUso de la memoriaConectividad
    bwlabel2-DMatriz de etiquetas con doble precisiónAlto4 u 8
    bwlabelnN-DMatriz de etiquetas de doble precisiónAltoCualquier
    bwconncompN-DEstructuraCCBajoCualquier
  • Para extraer entidades de una imagen binaria utilizando con conectividad predeterminada, simplemente pase directamente a , es decir. .regionpropsBWregionpropsregionprops(BW)

  • 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

    C = bwconncomp(BW); L = labelmatrix(CC);  CC = bwconncomp(BW,n); S = regionprops(CC);

Algoritmos

utiliza el siguiente procedimiento general:bwlabeln

  1. Escanee todos los píxeles de la imagen, asignando etiquetas preliminares a píxeles distintos de cero y registrando equivalencias de etiquetas en una tabla de búsqueda de unión.

  2. Resuelva las clases de equivalencia utilizando el algoritmo de búsqueda de unión .[1]

  3. Vuelva a etiquetar los píxeles en función de las clases de equivalencia resueltas.

Referencias

[1] Sedgewick, Robert, Algorithms in C, 3rd Ed., Addison-Wesley, 1998, pp. 11-20.

Introducido antes de R2006a