Этот пример показывает, как отфильтровать 2-е изображение оттенков серого с фильтром 5 на 5, содержащим равные веса (часто названный фильтром усреднения) использование imfilter. В примере также показано, как фильтровать изображение truecolor (RGB) с тем же фильтром. Цветное изображение представляет собой 3-D массив размером m-by-n-by-3, где последний размер представляет три цветовых канала. Фильтрация цветного изображения с помощью фильтра 2-D эквивалентна фильтрации каждой плоскости изображения по отдельности с помощью одного и того же фильтра 2-D.
Существует несколько функций MATLAB ®, выполняющих 2-D и многомерную фильтрацию, которые можно сравнить с imfilter. Функция filter2 выполняет двумерную корреляцию, conv2 выполняет двумерный сверток, и convn выполняет многомерный сверток. Однако каждая из этих функций фильтрации всегда преобразует входные данные в double, и вывод всегда double. Кроме того, эти функции фильтрации MATLAB ® всегда предполагают, что вход заполнен нулем, и они не поддерживают другие опции заполнения. Напротив ,imfilter не преобразует входные изображения в double. 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')
Считывание в рабочую область цветного изображения.
rgb = imread('peppers.png');
imshow(rgb);
Создайте фильтр. Этот фильтр усреднения содержит равные веса и приводит к тому, что отфильтрованное изображение выглядит более размытым, чем оригинал.
h = ones(5,5)/25;
Фильтрация изображения с помощью imfilter и отобразить его.
rgb2 = imfilter(rgb,h); figure imshow(rgb2)
