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