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

Llenar regiones y taladros de imagen

Sintaxis

BW2 = imfill(BW,locations)
BW2 = imfill(BW,'holes')
I2 = imfill(I)
BW2 = imfill(BW)
BW2 = imfill(BW,0,conn)
[BW2, locations_out] = imfill(BW)
BW2 = imfill(BW,locations,conn)
BW2 = imfill(BW,conn,'holes')
I2 = imfill(I,conn)
gpuarrayB = imfill(gpuarrayA,___)

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 BW, a partir de los puntos especificados en locations. 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 los índices de matriz de una de las ubicaciones de inicio.

ejemplo

BW2 = imfill(BW,'holes') rellena los taladros de la imagen binaria de entrada BW. En esta sintaxis, un taladro es un conjunto de píxeles de fondo que no se pueden alcanzar rellenando el fondo del borde de la imagen.

ejemplo

I2 = imfill(I) rellena los taladros 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.

BW2 = imfill(BW) muestra la imagen binaria BW en la pantalla y le permite definir la región para rellenar seleccionando puntos interactivamente con el ratón. Para utilizar esta sintaxis, BW debe ser una imagen en 2-D. Presione Backspace o Delete para quitar el punto previamente seleccionado. Pulse Mayús y haga clic con el botón derecho del ratón o haga doble clic para seleccionar un punto final e inicie la operación de relleno. Pulse Return para finalizar la selección sin añadir un punto.

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

[BW2, locations_out] = imfill(BW) Devuelve la ubicación de los puntos seleccionados interactivamente en locations_out. El valor devuelto locations_out es un vector de índices lineales en la imagen de entrada. Para utilizar esta sintaxis, BW debe ser una imagen en 2-D.

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

ejemplo

BW2 = imfill(BW,conn,'holes') rellena los taladros de la imagen binaria BW, donde conn especifica la conectividad.

ejemplo

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

ejemplo

gpuarrayB = imfill(gpuarrayA,___) realiza la operación de relleno en una GPU. La imagen de entrada y la imagen de retorno son 2-D gpuArrays. El uso de esta sintaxis requiere Parallel Computing Toolbox™. Cuando se ejecuta en una GPU, imfill no admite sintaxis interactivas, donde se seleccionan ubicaciones con el ratón.

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 a imagen binaria.

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

Rellene los taladros 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)

Cree una imagen binaria de ejemplo 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 real, no Sparse, lógica de cualquier dimensión.

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

Tipos de datos: logical

Índices lineales que identifican ubicaciones de píxeles, especificadas como un vector o matriz de enteros positivos (2-D, real, numérico).

Ejemplo: BW2 = imfill(BW,[3 3],8);

Tipos de datos: double

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

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

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

Conectividad, especificada como uno de los valores escalares en la tabla siguiente. De forma predeterminada, imfill utiliza cuatro vecindarios conectados para imágenes en 2-d y 6 vecindarios conectados para entradas 3D. Para dimensiones más altas, imfill utiliza conndef(ndims(I),'minimal'). La conectividad se puede definir de una manera más general para cualquier dimensión utilizando para conn una matriz de 3 por 3 por-...-por-3 de 0s y 1s. Los elementos con valor 1definen las ubicaciones del vecindario relativas al elemento central de conn. Tenga en cuenta que conn debe ser simétrico alrededor de su elemento central.

Valor

Significado

Conectividades de dos dimensiones

4

4-barrio conectado

8

8-barrio conectado

Conectividades tridimensional

6

6-barrio conectado

18

18-barrio conectado

26

26-barrio conectado

Tipos de datos: double | logical

Imagen de entrada, especificada como gpuArray.

Argumentos de salida

contraer todo

Imagen rellenada, devuelta como matriz lógica.

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

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

Imagen de salida, devuelta como gpuArray.

Algoritmos

imfill utiliza un algoritmo basado en la reconstrucción morfológica [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