integralBoxFilter

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

Синтаксис

B = integralBoxFilter(intA)
B = integralBoxFilter(intA,filterSize)
B = integralBoxFilter(___,Name,Value)

Описание

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

пример

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

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

Примеры

свернуть все

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

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.

Пример: B = integralBoxFilter(A);

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

Введенный в R2015b