В этом примере показано, как фильтровать 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 Функция также предлагает гибкий набор опций заполнения контуров.
Считайте полутоновое изображение в рабочую область.
I = imread('coins.png');Отобразите оригинальное изображение.
figure
imshow(I)
title('Original Image')
Создайте нормированный фильтр усреднения 5 на 5.
h = ones(5,5)/25;
Примените фильтр усреднения к полутоновому изображению с помощью imfilter.
I2 = imfilter(I,h);
Отобразите отфильтрованное изображение.
figure
imshow(I2)
title('Filtered Image')
Считайте изображение truecolor в рабочую область.
rgb = imread('peppers.png');
imshow(rgb);
Создайте фильтр. Этот фильтр усреднения содержит равные веса и заставляет отфильтрованное изображение выглядеть более размытым, чем оригинал.
h = ones(5,5)/25;
Фильтрация изображения с помощью imfilter и отобразите его.
rgb2 = imfilter(rgb,h); figure imshow(rgb2)
