integralBoxFilter

2D фильтрация поля интегральных изображений

Описание

B = integralBoxFilter(A) фильтрует интегральное изображение A с 3х3 фильтром поля. Возвращает отфильтрованное изображение, B.

пример

B = integralBoxFilter(A,filterSize) фильтрует интегральное изображение A с 2D полем фильтруют с размером, заданным filterSize.

B = integralBoxFilter(___,Name,Value) пары "имя-значение" использования, чтобы управлять различными аспектами фильтрации.

Примеры

свернуть все

Считайте изображение в рабочую область.

A = imread('cameraman.tif');

Заполните изображение радиусом окружения фильтра. Этот пример использует 11 11 фильтр.

filterSize = [11 11];
padSize = (filterSize-1)/2;
Apad = padarray(A, padSize, 'replicate','both');

Вычислите интегральное изображение заполненного входного изображения.

intA = integralImage(Apad);

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

B = integralBoxFilter(intA, filterSize);

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

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

figure
imshow(B,[])
title('Filtered Image')

Считайте изображение в рабочую область.

 A = imread('cameraman.tif');

Заполните изображение радиусом окружения фильтра, расчетного (11-1)/2.

padSize = [5 5]; 
Apad = padarray(A, padSize, 'replicate', 'both');

Вычислите интегральное изображение заполненного входа.

intA = integralImage(Apad);

Отфильтруйте интегральное изображение с вертикалью [11 1] фильтр.

Bvert = integralBoxFilter(intA, [11 1]);

Обрежьте выход, чтобы сохранить входной размер изображения и отобразить его.

Bvert = Bvert(:,6:end-5);

Отфильтруйте интегральное изображение с горизонталью [1 11] фильтр.

Bhorz = integralBoxFilter(intA, [1 11]);

Обрежьте выход, чтобы сохранить входной размер изображения.

Bhorz = Bhorz(6:end-5,:);

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

figure,
imshow(A)
title('Original Image')

figure,
imshow(Bvert,[])
title('Filtered with Vertical Filter')

figure,
imshow(Bhorz,[])
title('Filtered with Horizontal Filter')

Входные параметры

свернуть все

Интегральное изображение, которое будет отфильтровано, заданное как числовой массив любой размерности.

Интегральное изображение должно быть вертикальным — integralBoxFilter не поддерживает вращаемые интегральные изображения. Первая строка и столбец интегрального изображения принята, чтобы быть дополненной нулем, как возвращено integralImage.

Типы данных: double

Размер фильтра поля, заданного как положительный, нечетный целочисленный или вектор с 2 элементами положительных, нечетных целых чисел. Если filterSize скаляр, затем integralBoxFilter использует квадратный фильтр поля.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: B = integralBoxFilter(A,5,'NormalizationFactor',1);

Коэффициент нормализации применился к фильтру поля, заданному в виде числа.

'NormalizationFactor' по умолчанию оказывает влияние среднего фильтра — пиксели в выходном изображении являются локальными средними значениями изображения. Чтобы получить суммы местности, установите 'NormalizationFactor' к 1. Чтобы избежать переполнения при таких обстоятельствах, рассмотрите использование изображений двойной точности путем преобразования входного изображения, чтобы классифицировать double.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Выходные аргументы

свернуть все

Фильтрованное изображение, возвращенное как числовой массив. integralBoxFilter возвращает только части фильтрации, которые вычисляются без дополнения.

Типы данных: double

Расширенные возможности

Введенный в R2015b