Contenido principal

imhmin

Eliminar mínimos regionales de imágenes utilizando la transformada H-mínimos

Descripción

J = imhmin(I,H) suprime los mínimos regionales de la imagen en escala de grises I utilizando la transformada H-mínimos. La transformada H-mínimos reduce la profundidad de todos los mínimos regionales en una cantidad de hasta H. Como resultado, la transformada suprime totalmente los mínimos regionales cuya profundidad sea inferior a H. Los mínimos regionales son píxeles conectados con el mismo valor de intensidad, t, que están rodeados de píxeles con un valor de intensidad superior a t.

ejemplo

J = imhmin(I,H,conn) también especifica el valor de conectividad utilizado para identificar los mínimos regionales de I.

Ejemplos

contraer todo

Cree una imagen de muestra de 10 por 10. Añada tres mínimos regionales, donde cada uno conste de un área de píxeles conectados rodeados por valores de intensidad superiores.

a = 10*ones(10,10);
a(2:4,2:4) = 7;  
a(6:8,6:8) = 2;
a(1:3,7:9) = 13;
a(2,8) = 10;

Esta imagen es una representación en escala de grises de los valores de los píxeles. La profundidad de cada mínimo depende de los valores de los píxeles circundantes.

Grayscale representation of the original pixel values, with callouts labeling the depth of each minimum as 3, 3, and 8.

Aplique la transformada H-mínimos que reduce la profundidad de los mínimos regionales en hasta 4.

h = 4;
b = imhmin(a,h);

Esta imagen es una representación en escala de grises de la imagen transformada. La transformada suprime totalmente dos de los mínimos. La transformada suprime parcialmente el mínimo más profundo y suma 4 a los valores de intensidad de los píxeles de ese mínimo.

Grayscale representation of the transformed pixel values

Puede suprimir mínimos regionales superficiales para evitar la sobresegmentación durante la segmentación watershed.

Cargue una imagen RGB de peras que desee segmentar. Convierta la imagen a escala de grises y muéstrela. El centro de cada pera es claro, lo que corresponde a un máximo regional.

RGB = imread("pears.png");
I = im2gray(RGB);
imshow(I)

Figure contains an axes object. The hidden axes object contains an object of type image.

En la segmentación watershed, la imagen es análoga a una superficie compuesta por líneas divisorias de aguas y cuencas de captación. Cuando el agua fluye por la superficie, se acumula en las cuencas de captación. En una imagen en escala de grises, los mínimos locales son las cuencas de captación. Para segmentar las peras, invierta la imagen de modo que los centros de las peras se conviertan en los mínimos regionales.

Icomp = imcomplement(I);
imshow(Icomp)

Figure contains an axes object. The hidden axes object contains an object of type image.

Muestre la imagen invertida como una superficie 3D en la que la tercera dimensión de cada píxel es su valor de intensidad. Las regiones más profundas de cada pera tienen la parte inferior puntiaguda, lo que indica muchos mínimos regionales superficiales, como cuencas de captación en las que se puede acumular el agua.

surf(Icomp,EdgeColor="none")
colormap(gray)

Figure contains an axes object. The axes object contains an object of type surface.

Segmente la imagen sin filtrar y muestre el resultado como una superposición de etiquetas. La imagen está sobresegmentada, lo que significa que hay muchas máscaras pequeñas en lugar de una máscara para cada pera.

L = watershed(Icomp);
overlay = labeloverlay(I,L);
imshow(overlay)

Figure contains an axes object. The hidden axes object contains an object of type image.

Suprima los mínimos superficiales aplicando la transformada H-mínimos. El valor de h se ha determinado utilizando el método de prueba y error. Cambie el valor para ver cómo afecta el valor de h al resultado de la segmentación.

h = 30;
Ifilt = imhmin(Icomp,h);

Muestre la imagen filtrada como una superficie 3D.

surf(Ifilt,EdgeColor="none")
colormap(gray)

Figure contains an axes object. The axes object contains an object of type surface.

Segmente la imagen filtrada y muestre el resultado. La imagen contiene aproximadamente una máscara para cada pera en primer plano.

Lfilt = watershed(Ifilt);
overlayfilt = labeloverlay(I,Lfilt);
imshow(overlayfilt)

Figure contains an axes object. The hidden axes object contains an object of type image.

Argumentos de entrada

contraer todo

Imagen de entrada, especificada como arreglo numérico de cualquier dimensión.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Transformada H-mínimos, especificada como escalar no negativo.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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. El entorno de un píxel son los píxeles adyacentes en las direcciones horizontal y vertical.

3-by-3 pixel neighborhood with four pixels connected to the center pixel

El píxel actual se muestra en gris.

8

Los píxeles se consideran conectados si comparten bordes o vértices. El entorno de un píxel son los píxeles adyacentes en las direcciones horizontal, vertical y diagonal.

3-by-3 pixel neighborhood with 8 pixels connected to the center pixel

El píxel actual se muestra en gris.

Conectividades tridimensionales

6

Los píxeles se consideran conectados si comparten caras. El entorno de un píxel son los píxeles adyacentes en:

  • Alguna de estas direcciones: adentro, afuera, izquierda, derecha, arriba y abajo

3-by-3-by-3 pixel neighborhood with 6 pixels connected to the faces of the center pixel

El píxel actual se muestra en gris.

18

Los píxeles se consideran conectados si sus caras o bordes se tocan. El entorno de un píxel son los píxeles adyacentes en:

  • Alguna de estas direcciones: adentro, afuera, izquierda, derecha, arriba y abajo

  • Una combinación de dos direcciones, como derecha-abajo o adentro-arriba

3-by-3-by-3 pixel neighborhood with 6 pixels connected to the faces and 12 pixels connected to the edges of the center pixel

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. El entorno de un píxel son los píxeles adyacentes en:

  • 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

3-by-3-by-3 pixel neighborhood with 6 pixels connected to the faces, 12 pixels connected to the edges, and 8 pixels connected to the corners of the center pixel

El píxel actual es el centro del cubo.

En el caso de dimensiones más grandes, imhmin utiliza el valor por defecto conndef(ndims(I),"maximal").

La conectividad también puede definirse de una forma más general para cualquier dimensión especificando una matriz de 3 por 3 por ... por 3 de 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: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Argumentos de salida

contraer todo

Imagen transformada, devuelta como arreglo numérico del mismo tamaño y tipo de datos que I.

Referencias

[1] Soille, P. Morphological Image Analysis: Principles and Applications. Springer-Verlag, 1999, pp. 170-171.

Capacidades ampliadas

expandir todo

Historial de versiones

Introducido antes de R2006a