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.

Opciones de relleno de límites de imfilter

Cuando se calcula un píxel de salida en el límite de una imagen, una parte del núcleo de convolución o correlación suele estar fuera del límite de la imagen, según se ilustra en la figura siguiente.

Cuando los valores del núcleo se encuentran fuera de la imagen

A grid of pixels displaying the pixel values. The 3-by-3 kernel centered on the (1, 4) pixel is highlighted in gray and extends past the edge of the image, where there are no pixels.

La función imfilter normalmente rellena estos píxeles de imagen fuera del límite asumiendo que son 0. Esto se conoce como relleno de ceros y se ilustra en la figura siguiente.

Relleno de ceros de píxeles exteriores

A grid of pixels displaying the pixel values. Pixels are simulated where the 3-by-3 kernel extends past the edge of the image. The value of the simulated pixels is 0.

Cuando se filtra una imagen, el relleno de ceros puede resultar en una banda oscura alrededor del límite de la imagen, como se muestra en este ejemplo.

I = imread("eight.tif");
h = ones(5,5) / 25;
I2 = imfilter(I,h);
imshow(I), title("Original Image");
figure, imshow(I2), title("Filtered Image with Black Border")

On the left is the original image and on the right is the filtered image with dark pixels along the edge of the image.

Para eliminar los artefactos de relleno de ceros alrededor del límite de la imagen, imfilter ofrece un método de relleno de límites alternativo conocido como replicación de límites. En la replicación de límites, el valor de cualquier píxel fuera de la imagen se determina replicando el valor del píxel del límite más cercano. Esto se ilustra en la figura siguiente.

Píxeles del límite replicados

A grid of pixels displaying the pixel values. Pixels are simulated where the 3-by-3 kernel extends past the edge of the image. The value of each simulated pixel is equal to the value of the edge pixel adjacent to the simulated pixel.

Para filtrar utilizando la replicación de límites, pase el argumento opcional adicional "replicate" a imfilter.

I3 = imfilter(I,h,"replicate");
figure, imshow(I3); 
title("Filtered Image with Border Replication")

La función imfilter admite otras opciones de relleno de límites, como "circular" y "symmetric".

Consulte también

Temas relacionados