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.

Operaciones de llenado de inundaciones

La función realiza una operación en imágenes binarias y en escala de grises.imfillrelleno de inundación Esta operación puede ser útil para eliminar artefactos irrelevantes de imágenes.

  • Para las imágenes binarias, cambia los píxeles de fondo conectados (s) a los píxeles de primer plano ( s), deteniéndose cuando alcanza los límites de los objetos.imfill01

  • Para las imágenes en escala de grises, lleva los valores de intensidad de las áreas oscuras que están rodeadas de áreas más claras hasta el mismo nivel de intensidad que los píxeles circundantes.imfill En efecto, elimina los mínimos regionales que no están conectados al borde de la imagen.imfill Para obtener más información, consulte para obtener más información.Búsqueda de áreas de alta o baja intensidad

Especificación de la conectividad

Para las imágenes binarias y en escala de grises, el límite de la operación de relleno viene determinado por el especificado.conectividad de píxeles

Nota

difiere de las otras operaciones basadas en objetos en que funciona en píxeles.imfillFondo Cuando se especifica la conectividad con , se especifica la conectividad del fondo, no el primer plano.imfill

Las implicaciones de la conectividad se pueden ilustrar con esta matriz.

BW = logical([0     0     0     0     0     0     0     0;               0     1     1     1     1     1     0     0;               0     1     0     0     0     1     0     0;               0     1     0     0     0     1     0     0;               0     1     0     0     0     1     0     0;               0     1     1     1     1     0     0     0;               0     0     0     0     0     0     0     0;               0     0     0     0     0     0     0     0]);

Si el fondo está conectado a 4, esta imagen binaria contiene dos elementos de fondo independientes (la parte dentro del bucle y la parte exterior). Si el fondo está conectado a 8, los píxeles se conectan diagonalmente y solo hay un elemento de fondo.

Especificación del punto de partida

Para las imágenes binarias, puede especificar el punto inicial de la operación de relleno pasando el subíndice de ubicación o utilizando en modo interactivo, seleccionando píxeles iniciales con un ratón.imfill

Por ejemplo, si llama a , especificando el píxel como punto de partida, solo rellena el interior del bucle porque, de forma predeterminada, el fondo está conectado a 4.imfillBW(4,3)imfill

imfill(BW,[4 3])  ans =     0     0     0     0     0     0     0     0     0     1     1     1     1     1     0     0     0     1     1     1     1     1     0     0     0     1     1     1     1     1     0     0     0     1     1     1     1     1     0     0     0     1     1     1     1     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0

Si especifica el mismo punto de partida, pero utiliza una conectividad de fondo conectada a 8, rellena toda la imagen.imfill

imfill(BW,[4 3],8)  ans =     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1

Relleno de agujeros

Un uso común de la operación de relleno de inundación es rellenar agujeros en las imágenes. Por ejemplo, supongamos que tiene una imagen, binaria o en escala de grises, en la que los objetos de primer plano representan esferas. En la imagen, estos objetos deben aparecer como discos, pero en su lugar tienen forma de rosquilla debido a los reflejos en la fotografía original. Antes de realizar cualquier procesamiento posterior de la imagen, es posible que desee rellenar primero los "agujeros de rosquillas" utilizando .imfill

Dado que el uso de relleno de inundación para rellenar agujeros es tan común, incluye sintaxis especial para admitirlo para imágenes binarias y en escala de grises.imfill En esta sintaxis, solo tiene que especificar el argumento ; No es necesario especificar ubicaciones iniciales en cada taladro.'holes'

Para ilustrar, este ejemplo rellena los taladros en una imagen en escala de grises de una columna vertebral.

[X,map] = imread('spine.tif'); I = ind2gray(X,map); Ifill = imfill(I,'holes'); imshow(I);figure, imshow(Ifill)

Consulte también

Temas relacionados