Main Content

bwlabeln

Etiquetar los componentes conectados de una imagen binaria

Descripción

ejemplo

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

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

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

Ejemplos

contraer todo

Cree una sencilla imagen 3D binaria de muestra.

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 arreglo numérico o lógico de cualquier dimensión. 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 los siguientes valores de la tabla. La conectividad por defecto es 8 para imágenes 2D y 26 para imágenes 3D.

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.

Conectividades tridimensionales

6

Los píxeles se consideran conectados si comparten caras. Dos píxeles contiguos forman parte del mismo objeto si ambos se encuentran y están conectados a lo largo de:

  • Alguna de estas direcciones: adentro, afuera, izquierda, derecha, arriba y abajo

Center pixel connected to the faces of 6 pixels

El píxel actual es el centro del cubo.

18

Los píxeles se consideran conectados si sus caras o bordes se tocan. Dos píxeles contiguos forman parte del mismo objeto si ambos se encuentran y están conectados a lo largo de:

  • Alguna de estas direcciones: adentro, afuera, izquierda, derecha, arriba y abajo

  • Una combinación de dos direcciones, como derecha-abajo o adentro-arriba

Center pixel connected to the faces of 6 pixels and the edges of 12 pixels

El píxel actual es el centro del cubo.

26

Los píxeles se consideran conectados si sus caras, bordes o vértices se tocan. Dos píxeles contiguos forman parte del mismo objeto si ambos se encuentran y están conectados a lo largo de:

  • Alguna de estas direcciones: adentro, afuera, izquierda, derecha, arriba y abajo

  • Una combinación de dos direcciones, como derecha-abajo o adentro-arriba

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

Center pixel connected to the faces of 6 pixels, the edges of 12 pixels, and the corners of 8 pixels

El píxel actual es el centro del cubo.

En el caso de dimensiones más grandes, bwlabeln utiliza el valor por defecto conndef(ndims(BW),'maximal').

La conectividad puede definirse de una forma más general para cualquier dimensión especificando una matriz de 3 por 3 por ... por 3 con valores 0 y 1. Los elementos con el valor 1 definen los entornos relativos al elemento central de conn. Tenga en cuenta que conn debe ser simétrica respecto de su elemento central. Para obtener más información, consulte Especificar conectividades personalizadas.

Tipos de datos: double | logical

Argumentos de salida

contraer todo

Matriz de etiquetas, devuelta como arreglo 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 y de nuevo a lo largo de cualquier dimensión superior. Esta figura ilustra los extremos de dos regiones diferentes 2D.

    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.

    FunciónDimensión de entradaForma de salidaUso de memoriaConectividad
    bwlabel2DMatriz de etiquetas de doble precisiónElevado4 u 8
    bwlabelnN dimensionesMatriz de etiquetas de doble precisiónElevadaCualquiera
    bwconncompN dimensionesEstructura CCBajoCualquiera
  • Para extraer características de una imagen binaria utilizando regionprops con la conectividad predeterminada, pase BW directamente a regionprops utilizando el comando regionprops(BW).

Algoritmos

bwlabeln utiliza el siguiente procedimiento general:

  1. Escanea todos los píxeles de imagen, asignando etiquetas preliminares a píxeles distintos de cero y registrando las equivalencias de etiquetas en una tabla Union-Find.

  2. Resuelve las clases de equivalencia con el algoritmo Union-Find [1].

  3. Vuelve 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.

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

expandir todo