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 contains an axes. The axes with title Original Image contains an object of type image.

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

Figure contains an axes. The axes with title Filtered Image contains an object of type 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 contains an axes. The axes with title Original Image contains an object of type image.

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

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

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

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

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

свернуть все

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

Интегральное изображение должно быть вертикальным — 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