В этом примере показано, как фильтровать 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)