Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

imfill

Rellenar regiones y huecos en imágenes

Descripción

ejemplo

BW2 = imfill(BW,locations) realiza una operación de relleno por difusión sobre los píxeles del fondo de la imagen binaria de entrada BW, comenzando por los puntos especificados en locations.

BW2 = imfill(BW,locations,conn) rellena el área que define locations, en la que conn especifica la conectividad.

ejemplo

BW2 = imfill(BW,"holes") rellena huecos de la imagen binaria de entrada BW. En esta sintaxis, un hueco es un conjunto de píxeles de fondo que no se puede alcanzar rellenando el fondo desde el borde de la imagen.

ejemplo

BW2 = imfill(BW,conn,"holes") rellena huecos de la imagen binaria BW, en la que conn especifica la conectividad.

ejemplo

I2 = imfill(I) rellena huecos de la imagen en escala de grises I. En esta sintaxis, un hueco se define como un área de píxeles oscuros rodeada por píxeles más claros.

ejemplo

I2 = imfill(I,conn) rellena huecos de la imagen en escala de grises I, en la que conn especifica la conectividad.

BW2 = imfill(BW) muestra la imagen binaria BW en la pantalla y permite definir la región que se va a rellenar seleccionando interactivamente puntos con el ratón. Para utilizar esta sintaxis, BW debe ser una imagen 2D.

Presione Backspace o Delete para eliminar el último punto seleccionado. Pulse Mayús y haga clic con el botón secundario o doble clic para seleccionar un punto final y comenzar la operación de relleno. Presione Return para finalizar la selección sin agregar un punto.

BW2 = imfill(BW,0,conn) permite anular la conectividad por defecto mientras se especifican las ubicaciones interactivamente.

[BW2, locations_out] = imfill(BW) devuelve las ubicaciones de los puntos seleccionados interactivamente en locations_out. Para utilizar esta sintaxis, BW debe ser una imagen 2D.

Ejemplos

contraer todo

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

BW2 = imfill(BW1,[3 3],8)
BW2 = 8x8 logical array

   1   0   0   0   0   0   0   0
   1   1   1   1   1   0   0   0
   1   1   1   1   1   0   1   0
   1   1   1   1   1   1   1   0
   1   1   1   1   1   1   1   1
   1   0   0   1   1   1   1   0
   1   0   0   0   1   1   1   0
   1   0   0   0   1   1   1   0

Lea una imagen en el espacio de trabajo.

I = imread('coins.png');
figure
imshow(I)
title('Original Image')

Figure contains an axes object. The axes object with title Original Image contains an object of type image.

Convierta la imagen en una imagen binaria.

BW = imbinarize(I);
figure
imshow(BW)
title('Original Image Converted to Binary Image')

Figure contains an axes object. The axes object with title Original Image Converted to Binary Image contains an object of type image.

Rellene los huecos de la imagen binaria y muestre el resultado.

BW2 = imfill(BW,'holes');
figure
imshow(BW2)
title('Filled Image')

Figure contains an axes object. The axes object with title Filled Image contains an object of type image.

I = imread('tire.tif');
I2 = imfill(I);
figure, imshow(I), figure, imshow(I2)

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

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

Argumentos de entrada

contraer todo

Imagen binaria, especificada como arreglo de cualquier dimensión.

Ejemplo: BW = imread('text.png');

Tipos de datos: logical

Índices lineales que identifican la ubicación de los píxeles, especificados como vector o matriz numérica 2D de enteros positivos. Si locations es un vector p por 1, contiene los índices lineales de las ubicaciones de inicio. Si locations es una matriz p por ndims(BW), cada fila contiene el arreglo de índices lineales de las ubicaciones de inicio.

Ejemplo: [3 3]

Tipos de datos: double

Imagen en escala de grises, especificada como arreglo numérico de cualquier dimensión.

Ejemplo: I = imread('cameraman.tif');

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

Conectividad de píxeles, especificada como uno de los siguientes valores de la tabla. La conectividad por defecto es 4 para imágenes 2D y 6 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, imfill utiliza el valor por defecto conndef(ndims(BW),'minimal').

La conectividad puede definirse de una forma más general para cualquier dimensión especificando una matriz de 3 por 3 por ... por 3 con valores 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: double | logical

Argumentos de salida

contraer todo

Imagen binaria rellena, devuelta como arreglo lógico.

Índices lineales de las ubicaciones de los píxeles, devueltos como vector numérico o matriz numérica.

Imagen en escala de grises rellena, devuelta como arreglo numérico.

Algoritmos

imfill utiliza un algoritmo basado en reconstrucción morfológica [1].

Referencias

[1] Soille, P., Morphological Image Analysis: Principles and Applications, Springer-Verlag, 1999, pp. 173–174.

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

expandir todo

Consulte también

| | |