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.

Etiquetar y medir objetos en una imagen binaria

Descripción del etiquetado de componentes conectados

Un componente conectado en una imagen binaria es un conjunto de píxeles que forman un grupo conectado. Por ejemplo, la imagen binaria siguiente tiene tres componentes conectados.

El etiquetado de componentes conectados es el proceso de identificar los elementos conectados en una imagen y asignar a cada una una etiqueta única, como esta:

La matriz anterior se llama a.label matrix

calcula los componentes conectados, como se muestra en el ejemplo:bwconncomp

cc = bwconncomp(BW) cc =       Connectivity: 8        ImageSize: [8 9]       NumObjects: 3     PixelIdxList: {[6x1 double]  [6x1 double]  [5x1 double]} 

Identifica la lista de píxeles pertenecientes a cada componente conectado.PixelIdxList

Para visualizar los componentes conectados, es útil construir una matriz de etiquetas. Utilice la función.labelmatrix Para inspeccionar los resultados, visualice la matriz de etiquetas como una imagen pseudo-color utilizando.label2rgb

Construya una matriz de etiquetas:

labeled = labelmatrix(cc); 

Cree una imagen de pseudo-color, donde la etiqueta que identifica cada objeto de la matriz de etiquetas se asigna a un color diferente en la matriz asociada.colormap Se usa para elegir el colormap, el color de fondo y cómo los objetos de la matriz de etiquetas se asignan a los colores en el colormap:label2rgb

RGB_label = label2rgb(labeled, @copper, 'c', 'shuffle'); imshow(RGB_label,'InitialMagnification','fit')

Observaciones

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 funciones anteriores.

FunciónDimensión de entradaFormulario de salidaUso de memoriaConectividad
bwlabel2-DMatriz de etiquetas de doble precisiónAlto4 u 8
bwlabelnN-DMatriz de etiquetas de doble precisiónAltoCualquier
bwconncompN-DEstructuraCCBajoCualquier

Selección de objetos en una imagen binaria

Puede utilizar la función para seleccionar objetos individuales en una imagen binaria.bwselect Los píxeles se especifican en la imagen de entrada y se devuelve una imagen binaria que incluye solo los objetos de la imagen de entrada que contienen uno de los píxeles especificados.bwselect

Puede especificar los píxeles, ya sea de forma no interactiva o con un ratón. Por ejemplo, supongamos que desea seleccionar objetos en la imagen mostrada en los ejes actuales. Escriba

BW2 = bwselect;

El cursor cambia a los pelos cruzados cuando está sobre la imagen. Haga clic en los objetos que desee seleccionar; muestra una pequeña estrella sobre cada píxel en el que se haga clic.bwselect Cuando haya terminado, pulse. Devuelve una imagen binaria que consta de los objetos seleccionados y elimina las estrellas.Returnbwselect

Consulte la página de referencia para obtener más información.bwselect

Encontrar el área del primer plano de una imagen binaria

La función devuelve el área de una imagen binaria.bwarea El área es una medida del tamaño del primer plano de la imagen. En términos generales, el área es el número de píxeles en la imagen.on

no cuenta simplemente el número de píxeles establecidos, sin embargo.bwareaon En su lugar, pesa diferentes patrones de píxeles de forma desigual al calcular el área.bwarea Esta ponderación compensa la distorsión inherente a la representación de una imagen continua con píxeles discretos. Por ejemplo, una línea diagonal de 50 píxeles es más larga que una línea horizontal de 50 píxeles. Como resultado de los usos de ponderación, la línea horizontal tiene un área de 50, pero la línea diagonal tiene un área de 62,5.bwarea

Este ejemplo se utiliza para determinar el aumento de área porcentual en los resultados de una operación de dilatación.bwareacircbw.tif

BW = imread('circbw.tif');  SE = ones(5); BW2 = imdilate(BW,SE); increase = (bwarea(BW2) - bwarea(BW))/bwarea(BW) increase =      0.3456

Consulte la página de referencia para obtener más información sobre el patrón de ponderación.bwarea

Encontrar el número Euler de una imagen binaria

La función devuelve el número Euler para una imagen binaria.bweuler El número Euler es una medida de la topología de una imagen. Se define como el número total de objetos en la imagen menos el número de agujeros en esos objetos. Puede utilizar 4 o 8 vecindarios conectados.

Este ejemplo computa el número de Euler para la imagen del circuito, usando los vecindarios 8-conectados.

BW1 = imread('circbw.tif');  eul = bweuler(BW1,8)  eul =     -85

En este ejemplo, el número de Euler es negativo, indicando que el número de agujeros es mayor que el número de objetos.