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.

imfill

Rellene regiones y agujeros de imagen

Descripción

ejemplo

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

Opcionalmente, puede realizar la operación de relleno de inundación usando una GPU (requiere).Parallel Computing Toolbox™ Para obtener más información, consulte.Procesamiento de imágenes en una GPU

BW2 = imfill(BW,locations,conn) rellena el área definida por, donde especifica la conectividad.locationsconn

ejemplo

BW2 = imfill(BW,'holes') rellena los agujeros en la imagen binaria de entrada.BW En esta sintaxis, un taladro 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 los agujeros en la imagen binaria, donde especifica la conectividad.BWconn

ejemplo

I2 = imfill(I) rellena los agujeros de la imagen en escala de grises.I En esta sintaxis, un taladro se define como un área de píxeles oscuros rodeado de píxeles más claros.

ejemplo

I2 = imfill(I,conn) rellena los agujeros de la imagen en escala de grises, donde especifica la conectividad.Iconn

BW2 = imfill(BW) muestra la imagen binaria en la pantalla y permite definir la región para rellenarla seleccionando puntos de forma interactiva con el ratón.BW Para utilizar esta sintaxis, debe ser una imagen en 2-D.BW

Pulse o para eliminar el punto previamente seleccionado.RetrocesoEliminar Pulse Mayús y haga clic con el botón derecho o haga doble clic para seleccionar un punto final e iniciar la operación de relleno. Púlselo para finalizar la selección sin añadir un punto.Return

Esta sintaxis no se admite en una GPU.

BW2 = imfill(BW,0,conn) le permite invalidar la conectividad predeterminada a medida que especifica las ubicaciones de forma interactiva.

Esta sintaxis no se admite en una GPU.

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

Esta sintaxis no se admite en una GPU.

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

Leer la imagen en el espacio de trabajo.

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

Convertir imagen a imagen binaria.

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

Rellene los agujeros en la imagen binaria y visualice el resultado.

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

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

Cree una imagen binaria de muestra simple.

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])
BW1 =       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

Crear un.gpuArray

BW1 = gpuArray(BW1);     

Rellene el fondo de la imagen desde una ubicación de inicio especificada.

BW2 = imfill(BW1,[3 3],8)
BW2 =       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

Argumentos de entrada

contraer todo

Entrada de imagen binaria, especificada como una matriz lógica de cualquier dimensión.

Para rellenar regiones de imagen y taladros mediante una GPU, especifique como un que contenga una matriz lógica real, no dispersa, de cualquier dimensión.BWgpuArray

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

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

Tipos de datos: logical

Índices lineales que identifican ubicaciones de píxel, especificadas como un vector numérico o una matriz numérica 2-D de enteros positivos. Si es un vector de-por-1, entonces contiene los índices lineales de las ubicaciones de inicio.locationsp Si es una-por-matriz, cada fila contiene los índices de matriz de una de las ubicaciones de inicio.locationspndims(BW)

Ejemplo: [3 3]

Tipos de datos: double

Imagen de escala de grises de entrada, especificada como una matriz numérica de cualquier dimensión.

Para rellenar regiones de imagen y taladros mediante una GPU, especifique como un que contenga una matriz numérica real, no dispersa, de cualquier dimensión.IgpuArray

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

Ejemplo: I = gpuArray(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 valores de esta tabla. La conectividad predeterminada es 4 para imágenes en 2-D y 6 para imágenes 3D.

Valor

Significado

Two-Dimensional Connectivities

4-connected

Los píxeles se conectan si los bordes se tocan. La vecindad de un píxel son los píxeles adyacentes en la dirección horizontal o vertical.

8-connected

Los píxeles se conectan si los bordes o las esquinas se tocan. La vecindad de un píxel son los píxeles adyacentes en la dirección horizontal, vertical o diagonal.

Three-Dimensional Connectivities

6-conectado

Los píxeles se conectan si se tocan las caras. El vecindario de un píxel son los píxeles adyacentes en:

  • Una de estas direcciones: en, fuera, izquierda, derecha, arriba y abajo

18-conectado

Los píxeles se conectan si sus caras o aristas se tocan. El vecindario de un píxel son los píxeles adyacentes en:

  • Una de estas direcciones: en, fuera, izquierda, derecha, arriba y abajo

  • Una combinación de dos direcciones, como la derecha-abajo o en

26-conectado

Los píxeles se conectan si sus caras, aristas o esquinas se tocan. El vecindario de un píxel son los píxeles adyacentes en:

  • Una de estas direcciones: en, fuera, izquierda, derecha, arriba y abajo

  • Una combinación de dos direcciones, como la derecha-abajo o en

  • Una combinación de tres direcciones, como en-derecha-arriba o en-izquierda-abajo

Para cotas superiores, utiliza el valor predeterminadoimfill conndef(ndims(BW),'minimal').

La conectividad también se puede definir de una manera más general para cualquier dimensión especificando una matriz de 3 por 3 por...-por-3 de s y s.01 Los elementos con valor definen las ubicaciones de vecindad con respecto al elemento central de.1conn Tenga en cuenta que debe ser simétrica sobre su elemento central.conn Consulte para obtener más información.Especificación de Connectivities personalizadas

Tipos de datos: double | logical

Argumentos de salida

contraer todo

Imagen rellena, devuelta como matriz lógica.

Si las regiones y los taladros de la imagen se rellenan con una GPU, se devuelve como un que contiene una matriz lógica.BW2gpuArray

Índices lineales de ubicaciones de píxeles, devueltos como un vector numérico o una matriz.

Imagen de escala de grises rellena, devuelta como una matriz numérica.

Si las regiones y los taladros de la imagen se rellenan con una GPU, se devuelve como un que contiene una matriz numérica.I2gpuArray

Algoritmos

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

Referencias

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

Capacidades ampliadas

Consulte también

| | |

Introducido antes de R2006a