Этот пример показывает, как отфильтровать 2D полутоновое изображение с фильтром 5 на 5, содержащим равные веса (часто названный фильтром усреднения) использование imfilter
. Пример также показывает, как отфильтровать истинный цвет (RGB) изображение с тем же фильтром. Изображение истинного цвета является трехмерным массивом размера m n 3, где последняя размерность представляет эти три цветовых канала. Фильтрация изображения истинного цвета с 2D фильтром эквивалентна фильтрации каждой плоскости изображения индивидуально с тем же 2D фильтром.
Существует несколько функций MATLAB®, которые выполняют 2D и многомерную фильтрацию, которая может сравниться с 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)