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 la imagen binaria

Sintaxis

CC = bwconncomp(BW)
CC = bwconncomp(BW,conn)

Descripción

ejemplo

CC = bwconncomp(BW) Devuelve los componentes conectados CC encontrados en la imagen binaria BW. bwconncomp utiliza una conectividad predeterminada de 8 para dos dimensiones, 26 para tres dimensiones y conndef(ndims(BW),'maximal') para cotas más altas.

ejemplo

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

Ejemplos

contraer todo

Cree una pequeña matriz de 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]);

Encuentre 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 centroides de los objetos de la matriz.

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

Lea 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 de la imagen y borrelo (defina todos los píxeles en 0).

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

Mostrar la imagen, observando 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 la 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, bwconncomp 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'); CC = bwconncomp(BW,4);

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 de BW
NumObjectsNúmero de componentes conectados (objetos) en BW
PixelIdxListmatriz de celdas de 1 porNumObjects donde el elemento k-ésimo de la matriz de celdas es un vector que contiene los índices lineales de los píxeles del objeto k-ésimo.

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 utilizando 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. 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 no etiquetado, 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