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

Encuentre los componentes conectados en la imagen binaria

Descripción

ejemplo

CC = bwconncomp(BW) Devuelve los componentes conectados encontrados en la imagen binaria. utiliza una conectividad predeterminada de 8 para dos dimensiones, 26 para tres dimensiones y para cotas superiores.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 3-D 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]}

Calcule los centroides de los objetos de la matriz.

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

Leer la imagen en el espacio de trabajo y mostrarla.

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

Encuentre 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 en la imagen y borrarlo (Fije todos los pixeles a 0).

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

Muestre la imagen, señalando que el componente más grande pasa a 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, se consideran píxeles distintos de cero.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 en 2-D y para imágenes 3D.826

Valor

Significado

Two-Dimensional Connectivities

4-connected

Los píxeles se conectan si los bordes se tocan. Dos píxeles adyacentes forman parte del mismo objeto si están conectados y se conectan a lo largo de la dirección horizontal o vertical.

8-connected

Los píxeles se conectan si los bordes o las esquinas se tocan. Dos píxeles adyacentes forman parte del mismo objeto si están conectados y se conectan a lo largo de la dirección horizontal, vertical o diagonal.

Three-Dimensional Connectivities

6-conectado

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

  • Una de estas direcciones: en, fuera, izquierda, derecha, arriba y abajo

18-conectado

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

  • Una de estas direcciones: en, fuera, izquierda, derecha, arriba y abajo

  • Una combinación de dos direcciones, como la derecha-abajo o en

26-conectado

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

  • Una de estas direcciones: en, fuera, izquierda, derecha, arriba y abajo

  • Una combinación de dos direcciones, como la derecha-abajo o en

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

Para cotas superiores, 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 con valor definen las ubicaciones de vecindad con respecto al elemento central de.1conn Tenga en cuenta que debe ser simétrica sobre su elemento central.conn Consulte para obtener más información.Especificación de Connectivities 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 de 1 por celda donde el elemento-TH en la matriz de celdas es un vector que contiene los índices lineales de los píxeles en el objeto-ésimo.NumObjectskk

Sugerencias

  • Las funciones y todos los componentes de proceso conectados para imágenes binarias. reemplaza el uso de y.bwlabelbwlabelnbwconncompbwconncompbwlabelbwlabeln Utiliza significativamente menos memoria y es a veces más rápido que las otras funciones.

    FunciónDimensión de entradaFormulario de salidaUso de 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 la 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 (p. ej., versus), 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