Фильтрация изображений в полутоновом и труколоре (RGB) с использованием функции imfilter

В этом примере показано, как фильтровать 2-D полутоновое изображение с помощью фильтра 5 на 5, содержащего равные веса (часто называемого средним фильтром), используя imfilter. В примере также показано, как фильтровать изображение truecolor (RGB) с тем же фильтром. Изображение truecolor является трехмерным массивом размера m на n на 3, где последняя размерность представляет три цветовых канала. Фильтрация изображения truecolor с помощью 2-D фильтра эквивалентна фильтрации каждой плоскости изображения индивидуально с помощью одного и того же 2-D фильтра.

Существует несколько функций MATLAB ®, которые выполняют 2-D и многомерную фильтрацию, которую можно сравнить с imfilter. Функция filter2 выполняет двумерную корреляцию, conv2 выполняет двумерную свертку, и convn выполняет многомерную свертку. Однако каждая из этих функций фильтрации всегда преобразует вход в double, и выход всегда double. Кроме того, эти функции фильтрации MATLAB ® всегда предполагают, что вход заполнен нулями, и они не поддерживают другие опции заполнения. Напротив, imfilter не преобразует входные изображения в double. The imfilter Функция также предлагает гибкий набор опций заполнения контуров.

Фильтр 2-D полутонового изображения с фильтром усреднения

Считайте полутоновое изображение в рабочую область.

I = imread('coins.png');

Отобразите оригинальное изображение.

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

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

Создайте нормированный фильтр усреднения 5 на 5.

h = ones(5,5)/25;

Примените фильтр усреднения к полутоновому изображению с помощью imfilter.

I2 = imfilter(I,h);

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

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

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

Фильтрация многомерного изображения Truecolor (RGB) с использованием imfilter

Считайте изображение truecolor в рабочую область.

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

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

Создайте фильтр. Этот фильтр усреднения содержит равные веса и заставляет отфильтрованное изображение выглядеть более размытым, чем оригинал.

h = ones(5,5)/25;

Фильтрация изображения с помощью imfilter и отобразите его.

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

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

См. также

Похожие темы