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.

bwconncomp

Buscar componentes conectados en imagen binaria

Descripción

ejemplo

CC = bwconncomp(BW) devuelve los componentes conectados que se encuentran en la imagen binaria. utiliza una conectividad predeterminada de 8 para dos dimensiones, 26 para tres dimensiones y para dimensiones más altas.CCBWbwconncompconndef(ndims(BW),'maximal')

ejemplo

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

Ejemplos

contraer todo

Cree una pequeña matriz 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 la matriz.

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

Calcular centroides de los objetos de la matriz.

S = regionprops(CC,'Centroid')
S=2×1 struct
    Centroid

Lea la imagen en el espacio de trabajo y muéstrala.

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

Busque el número de 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 componente más grande de la imagen y bórrelo (establezca todos los píxeles en 0).

numPixels = cellfun(@numel,CC.PixelIdxList); [biggest,idx] = max(numPixels); BW(CC.PixelIdxList{idx}) = 0;

Muestre la imagen, observando que el componente más grande resulta ser los dos f consecutivos en la palabra diferente.

figure imshow(BW)

Argumentos de entrada

contraer todo

Introduzca una 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 predeterminadobwconncomp 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

Componentes conectados, devueltos como una estructura con cuatro campos.

CampoDescripción
ConnectivityConectividad de los componentes conectados (objetos)
ImageSizeTamaño deBW
NumObjectsNúmero de componentes conectados (objetos) enBW
PixelIdxListMatriz 1 por celda donde el elemento -th de la matriz de celdas es un vector que contiene los índices lineales de los píxeles del objeto -th.NumObjectskk

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 con un tipo de datos más eficiente en memoria (por ejemplo, frente a ), utilice la función en la salida de .uint8doublelabelmatrixbwconncomp Consulte la documentación de cada función para obtener más información.

Algoritmos

Los pasos básicos para encontrar los componentes conectados son:

  1. Busque el siguiente píxel sin etiquetar, .p

  2. Utilice un algoritmo de relleno de inundación para etiquetar todos los píxeles del componente conectado que contiene .p

  3. Repita los pasos 1 y 2 hasta que todos los píxeles estén etiquetados.

Capacidades ampliadas

Consulte también

| | |

Introducido en R2009a