Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

bwconncomp

Buscar y contar los componentes conectados de una imagen binaria

Descripción

CC = bwconncomp(BW) busca y cuenta los componentes conectados CC de la imagen binaria BW. La estructura de salida CC contiene el número total de componentes conectados, tales como las regiones de interés (ROI), de los índices de la imagen y los píxeles asignados a cada componente. bwconncomp utiliza una conectividad por defecto de 8 para dos dimensiones y de 26 para tres dimensiones.

ejemplo

CC = bwconncomp(BW,conn) especifica la conectividad deseada conn de los componentes conectados.

ejemplo

Ejemplos

contraer todo

Cree un pequeño arreglo 3D 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]);

Busque los componentes conectados en el arreglo.

CC = bwconncomp(BW)
CC = struct with fields:
    Connectivity: 26
       ImageSize: [3 3 3]
      NumObjects: 2
    PixelIdxList: {[5x1 double]  [3x1 double]}

Calcule los centroides de los objetos del arreglo.

S = regionprops(CC,'Centroid')
S=2×1 struct array with fields:
    Centroid

Lea y muestre una imagen binaria de texto.

BW = imread("text.png");
imshow(BW)

Busque los componentes conectados en la imagen.

CC = bwconncomp(BW)
CC = struct with fields:
    Connectivity: 8
       ImageSize: [256 256]
      NumObjects: 88
    PixelIdxList: {1x88 cell}

Determine cuál es el objeto más grande de la imagen.

p = regionprops(CC,"Area");
[maxArea,maxIdx] = max([p.Area])
maxArea = 106
maxIdx = 52

Cree una imagen binaria que contenga todos los objetos excepto el más grande. Muestre el resultado.

idx = setdiff(1:CC.NumObjects,maxIdx);
BW2 = cc2bw(CC,ObjectsToKeep=idx);

Muestre la imagen. La imagen omite el objeto más grande, que corresponde a las dos f consecutivas de la palabra different (diferente).

imshow(BW)

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, bwconncomp 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

Componentes conectados, devueltos como estructura con cuatro campos.

CampoDescripción
ConnectivityConectividad de los componentes conectados (objetos)
ImageSizeTamaño de BW
NumObjectsNúmero de componentes conectados (objetos) en BW
PixelIdxList

Arreglo de celdas de 1 por NumObjects donde el k-ésimo elemento del arreglo de celdas es un vector que contiene los índices lineales de los píxeles del k-ésimo componente conectado.

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.

    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).

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

Capacidades ampliadas

Historial de versiones

Introducido en R2009a

expandir todo