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.

Filtrar imágenes en escala de grises y en color verdadero (RGB) utilizando la función imfilter

Este ejemplo muestra cómo filtrar una imagen 2D en escala de grises con un filtro de 5 por 5 que contiene ponderaciones iguales (suele denominarse "filtro promediador") usando imfilter. El ejemplo también muestra cómo filtrar una imagen en color verdadero (RGB) con el mismo filtro. Una imagen en color verdadero es un arreglo 3D de m por n por 3, donde la última dimensión representa los tres canales de color. Filtrar una imagen en color verdadero con un filtro 2D equivale a filtrar cada plano de la imagen de forma individual con el mismo filtro 2D.

Existen varias funciones de MATLAB® que realizan filtrado 2D y multidimensional que pueden compararse con imfilter. La función filter2 realiza la correlación bidimensional, conv2 la convolución bidimensional y convn la convolución multidimensional. Sin embargo, cada una de estas funciones de filtrado siempre convierte la entrada en double y la salida siempre es double. Además, estas funciones de filtrado de MATLAB® siempre asumen que la entrada está rellenada con ceros y no admiten otras opciones de relleno. En cambio, imfilter no convierte las imágenes de entrada en double. La función imfilter también ofrece un conjunto flexible de opciones de relleno de límites.

Filtrar imágenes 2D en escala de grises con un filtro promediador

Lea una imagen en escala de grises en el espacio de trabajo.

I = imread("coins.png");

Muestre la imagen original.

figure
imshow(I)
title("Original Image")

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

Cree un filtro promediador normalizado de 5 por 5.

h = ones(5,5)/25;

Aplique el filtro promediador a la imagen en escala de grises usando imfilter.

I2 = imfilter(I,h);

Muestre la imagen filtrada.

figure
imshow(I2)
title("Filtered Image")

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

Filtrar imágenes en color verdadero (RGB) multidimensionales con imfilter

Lea una imagen en color verdadero en el espacio de trabajo.

rgb = imread("peppers.png");
imshow(rgb);

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

Cree un filtro. Este filtro promediador tiene ponderaciones iguales y hace que la imagen filtrada parezca más borrosa que la original.

h = ones(5,5)/25;

Filtre la imagen con imfilter y muéstrela.

rgb2 = imfilter(rgb,h);
figure
imshow(rgb2)

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

Consulte también

Temas relacionados