exponenta event banner

Фильтрация изображений в градациях серого и цветной (RGB) с помощью функции imfilter

Этот пример показывает, как отфильтровать 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 функция также предлагает гибкий набор опций заполнения границ.

Фильтр 2-D изображения в градациях серого с фильтром усреднения

Чтение изображения в градациях серого в рабочую область.

I = imread('coins.png');

Отображение исходного изображения.

figure
imshow(I)
title('Original Image')

Figure contains an axes. The axes with title Original Image contains an object of type image.

Создайте нормированный, 5 на 5, усредняющий фильтр.

h = ones(5,5)/25;

Применение фильтра усреднения к изображению в оттенках серого с помощью imfilter.

I2 = imfilter(I,h);

Отображение отфильтрованного изображения.

figure
imshow(I2)
title('Filtered Image')

Figure contains an axes. The axes with title Filtered Image contains an object of type image.

Фильтр многомерного изображения (RGB) с помощью imfilter

Считывание в рабочую область цветного изображения.

rgb = imread('peppers.png');
imshow(rgb);

Figure contains an axes. The axes contains an object of type image.

Создайте фильтр. Этот фильтр усреднения содержит равные веса и приводит к тому, что отфильтрованное изображение выглядит более размытым, чем оригинал.

h = ones(5,5)/25;

Фильтрация изображения с помощью imfilter и отобразить его.

rgb2 = imfilter(rgb,h);
figure
imshow(rgb2)

Figure contains an axes. The axes contains an object of type image.

См. также

Связанные темы