Применение Гауссовых фильтров сглаживания к изображениям

В этом примере показано, как применить различные фильтры сглаживания Гауссова к изображениям с помощью imgaussfilt. Гауссовы сглаживающие фильтры обычно используются для уменьшения шума.

Чтение изображения в рабочую область.

I = imread('cameraman.tif');

Фильтрация изображения с помощью изотропных Гауссовых сглаживающих ядер увеличивающихся стандартных отклонений. Гауссовы фильтры обычно изотропны, то есть имеют одинаковое стандартное отклонение по обеим размерностям. Изображение может быть отфильтровано изотропным Гауссовым фильтром путем определения скалярного значения для sigma.

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

Отобразите оригинальное изображение и все отфильтрованные изображения.

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

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

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

Figure contains an axes. The axes with title Smoothed image, \sigma = 2 contains an object of type image.

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

Figure contains an axes. The axes with title Smoothed image, \sigma = 4 contains an object of type image.

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

Figure contains an axes. The axes with title Smoothed image, \sigma = 8 contains an object of type image.

Фильтрация изображения с помощью анизотропных Гауссовых сглаживающих ядер. imgaussfilt позволяет Гауссову ядру иметь различные стандартные отклонения по размерностям строки и столбца. Они называются выровненными по оси анизотропными Гауссовыми фильтрами. Задайте вектор с 2 элементами для sigma при использовании анизотропных фильтров.

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

Отобразите отфильтрованные изображения.

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

Figure contains an axes. The axes with title Smoothed image, \sigma_x = 4, \sigma_y = 1 contains an object of type image.

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

Figure contains an axes. The axes with title Smoothed image, \sigma_x = 8, \sigma_y = 1 contains an object of type image.

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

Figure contains an axes. The axes with title Smoothed image, \sigma_x = 1, \sigma_y = 4 contains an object of type image.

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

Figure contains an axes. The axes with title Smoothed image, \sigma_x = 1, \sigma_y = 8 contains an object of type image.

Подавьте горизонтальные полосы, видимые в области неба оригинального изображения. Анизотропные Гауссовы фильтры могут подавлять горизонтальные или вертикальные функции на изображении. Извлеките сечение области неба изображения и используйте Гауссов фильтр с более высоким стандартным отклонением вдоль оси X (направление увеличивающихся столбцов).

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

Отображение исходной закрашенной фигуры неба с отфильтрованной версией.

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

Figure contains an axes. The axes 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. The axes with title Sky in filtered image contains an object of type image.

Для просмотра документации необходимо авторизоваться на сайте