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

Sintaxis

L = bwlabeln(BW)
L = bwlabeln(BW,conn)
[L,n] = bwlabeln(___)

Descripción

ejemplo

L = bwlabeln(BW) Devuelve una matriz de etiquetas, L, que contiene etiquetas para los componentes conectados en BW. bwlabeln utiliza una conectividad predeterminada de 8 para dos dimensiones, 26 para tres dimensiones y conndef(ndims(BW),'maximal') para cotas más altas.

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

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

Ejemplos

contraer todo

Cree una imagen binaria simple de ejemplo 3-D.

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 real, no Sparse, numérica o lógica de cualquier dimensión. Para la entrada numérica, cualquier píxel distinto de cero se considera on.

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

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

Conectividad para los componentes conectados, especificado como uno de los siguientes valores escalares.

Valor

Significado

Conectividades de dos dimensiones

4

4-barrio conectado

8

8-barrio conectado

Conectividades tridimensional

6

6-barrio conectado

18

18-barrio conectado

26

26-barrio conectado

Para calcular la conectividad predeterminada para cotas superiores, bwlabeln utiliza conndef(ndims(BW),'maximal').

La conectividad se puede definir de una manera más general para cualquier dimensión utilizando una matriz de 3 por 3 por-...-por-3 de 0s y 1S. conn debe ser simétrico acerca de su elemento central. Los elementos de 1 valor definen las ubicaciones de vecindario en relación con conn.

Ejemplo: BW = imread('text.png'); L = bwlabeln(BW,4);

Tipos de datos: double | logical

Argumentos de salida

contraer todo

Label Matrix, devuelto como una matriz de enteros no negativos con el mismo tamaño que BW. Los píxeles etiquetados como 0 son el fondo. Los píxeles etiquetados 1 componen un objeto; los píxeles etiquetados 2 conforman un segundo objeto; y así sucesivamente.

Tipos de datos: double

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

Tipos de datos: double

Número de objetos conectados en BW, devueltos como enteros no negativos.

Tipos de datos: double

Sugerencias

  • Las funciones bwlabel, bwlabelny bwconncomp calculan todos los componentes conectados para las imágenes binarias. bwconncomp sustituye el uso de bwlabel y bwlabeln. Utiliza significativamente menos memoria y a veces es más rápido que las otras funciones.

    FunciónDimensión de la entradaFormulario de salidaUso de memoriaConectividad
    bwlabel2-DMatriz de etiquetas con doble precisiónAlta4 o 8
    bwlabelnN-DMatriz de etiquetas de doble precisiónAltaCualquier
    bwconncompN-DCC structBajaCualquier
  • Para extraer características de una imagen binaria usando regionprops con conectividad predeterminada, simplemente pase BW directamente a regionprops, es decir, regionprops(BW).

  • Para calcular una matriz de etiquetas con un tipo de datos más eficiente en memoria (por ejemplo, uint8 versus double), utilice la función labelmatrix en la salida de bwconncomp:

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

Algoritmos

bwlabeln utiliza el siguiente procedimiento general:

  1. Escanee todos los píxeles de la imagen, asignando etiquetas preliminares a píxeles que no son cero y las equivalencias de etiquetas de grabación en una tabla Unión-buscar.

  2. Resuelva las clases de equivalencia utilizando el algoritmo [1]de Union-Find.

  3. Reetiquetar los píxeles basándose en las clases de equivalencia resueltas.

Referencias

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

Introducido antes de R2006a