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

Rellenar 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, a partir de los puntos especificados en .BWlocations

Opcionalmente, puede realizar la operación de llenado de inundación usar una GPU (requiere ).Parallel Computing Toolbox™

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

ejemplo

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

ejemplo

BW2 = imfill(BW,conn,'holes') rellena los agujeros de 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 agujero se define como un área de píxeles oscuros rodeado de píxeles más claros.

ejemplo

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

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

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

Esta sintaxis no se admite en una GPU.

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

Esta sintaxis no se admite en una GPU.

[BW2, locations_out] = imfill(BW) devuelve las ubicaciones de los puntos seleccionados interactivamente en .locations_out Para utilizar esta sintaxis, debe ser una imagen 2D.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

Lea la imagen en el espacio de trabajo.

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

Convertir imagen en imagen binaria.

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

Rellene los agujeros de la imagen binaria y muestre 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)

Argumentos de entrada

contraer todo

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

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

Tipos de datos: logical

Los índices lineales que identifican las ubicaciones de píxeles, especificados como un vector numérico o una matriz numérica 2D de enteros positivos. Si es un vector -by-1, contiene los índices lineales de las ubicaciones iniciales.locationsp Si es una matriz -by-, cada fila contiene los índices de matriz de una de las ubicaciones iniciales.locationspndims(BW)

Ejemplo: [3 3]

Tipos de datos: double

Introduzca la imagen en escala de grises, especificada como una matriz numérica 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 valores de esta tabla. La conectividad predeterminada es para imágenes 2D y para imágenes 3D.46

Valor

Significado

Conectividades bidimensionales

4 conectados

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

8 conectados

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

Conectividades tridimensionales

6 conectados

Los píxeles están conectados si sus caras se tocan. La vecindad de un píxel son los píxeles adyacentes en:

  • Una de estas direcciones: entrada, salida, izquierda, derecha, arriba y abajo

18 conectados

Los píxeles están conectados si sus caras o aristas se tocan. La vecindad de un píxel son los píxeles adyacentes en:

  • Una de estas direcciones: entrada, salida, izquierda, derecha, arriba y abajo

  • Una combinación de dos direcciones, como el derecho hacia abajo o hacia arriba

26 conectados

Los píxeles están conectados si sus caras, aristas o esquinas se tocan. La vecindad de un píxel son los píxeles adyacentes en:

  • Una de estas direcciones: entrada, salida, izquierda, derecha, arriba y abajo

  • Una combinación de dos direcciones, como el derecho hacia abajo o hacia arriba

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

Para dimensiones más altas, 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 -valued definen ubicaciones de vecindad relativas al elemento central de .1conn Tenga en cuenta que debe ser simétrico sobre su elemento central.conn Consulte para obtener más información.Especificación de conectividades personalizadas

Tipos de datos: double | logical

Argumentos de salida

contraer todo

Imagen rellena, devuelta como matriz lógica.

Indices lineales de ubicaciones de píxeles, devueltos como vector numérico o matriz.

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

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