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.

Aplicar filtros de suavizado gaussiano a las imágenes

Este ejemplo muestra cómo aplicar diferentes filtros de suavizado gaussiano a las imágenes usando imgaussfilt. Los filtros de suavizado gaussiano se suelen usar para reducir el ruido.

Lea una imagen en el espacio de trabajo.

I = imread('cameraman.tif');

Filtre la imagen con núcleos de suavizado gaussiano isotrópicos de desviaciones estándar cada vez más grandes. Los filtros gaussianos suelen ser isotrópicos, es decir, tienen la misma desviación estándar a lo largo de ambas dimensiones. Se puede filtrar una imagen con un filtro gaussiano isotrópico especificando un valor escalar para sigma.

Iblur1 = imgaussfilt(I,2);
Iblur2 = imgaussfilt(I,4);
Iblur3 = imgaussfilt(I,8);

Muestre la imagen original y todas las imágenes filtradas.

figure
imshow(I)
title('Original image')

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

figure
imshow(Iblur1)
title('Smoothed image, \sigma = 2')

Figure contains an axes object. The axes object with title S m o o t h e d blank i m a g e , blank sigma blank = blank 2 contains an object of type image.

figure
imshow(Iblur2)
title('Smoothed image, \sigma = 4')

Figure contains an axes object. The axes object with title S m o o t h e d blank i m a g e , blank sigma blank = blank 4 contains an object of type image.

figure
imshow(Iblur3)
title('Smoothed image, \sigma = 8')

Figure contains an axes object. The axes object with title S m o o t h e d blank i m a g e , blank sigma blank = blank 8 contains an object of type image.

Filtre la imagen con núcleos de suavizado gaussianos anisotrópicos. imgaussfilt permite al núcleo gaussiano tener diferentes desviaciones estándar en las dimensiones de fila y columna. Estos se denominan filtros gaussianos anisotrópicos alineados con el eje. Especifique un vector de 2 elementos para sigma cuando utilice filtros anisotrópicos.

IblurX1 = imgaussfilt(I,[4 1]);
IblurX2 = imgaussfilt(I,[8 1]);
IblurY1 = imgaussfilt(I,[1 4]);
IblurY2 = imgaussfilt(I,[1 8]);

Muestre las imágenes filtradas.

figure
imshow(IblurX1)
title('Smoothed image, \sigma_x = 4, \sigma_y = 1')

Figure contains an axes object. The axes object with title S m o o t h e d blank i m a g e , blank sigma indexOf x baseline blank = blank 4 , blank sigma indexOf y baseline blank = blank 1 contains an object of type image.

figure
imshow(IblurX2)
title('Smoothed image, \sigma_x = 8, \sigma_y = 1')

Figure contains an axes object. The axes object with title S m o o t h e d blank i m a g e , blank sigma indexOf x baseline blank = blank 8 , blank sigma indexOf y baseline blank = blank 1 contains an object of type image.

figure
imshow(IblurY1)
title('Smoothed image, \sigma_x = 1, \sigma_y = 4')

Figure contains an axes object. The axes object with title S m o o t h e d blank i m a g e , blank sigma indexOf x baseline blank = blank 1 , blank sigma indexOf y baseline blank = blank 4 contains an object of type image.

figure
imshow(IblurY2)
title('Smoothed image, \sigma_x = 1, \sigma_y = 8')

Figure contains an axes object. The axes object with title S m o o t h e d blank i m a g e , blank sigma indexOf x baseline blank = blank 1 , blank sigma indexOf y baseline blank = blank 8 contains an object of type image.

Suprima las bandas horizontales visibles en la región del cielo de la imagen original. Los filtros gaussianos anisotrópicos pueden suprimir elementos horizontales o verticales de una imagen. Extraiga una sección de la región del cielo de la imagen y utilice un filtro gaussiano con una desviación estándar más alta en el eje X (dirección de columnas cada vez más grandes).

I_sky = imadjust(I(20:50,10:70));
IblurX1_sky = imadjust(IblurX1(20:50,10:70));

Muestre la sección original de cielo con la versión filtrada.

figure
imshow(I_sky), title('Sky in original image')

Figure contains an axes object. The axes object with title Sky in original image contains an object of type image.

figure
imshow(IblurX1_sky), title('Sky in filtered image')

Figure contains an axes object. The axes object with title Sky in filtered image contains an object of type image.