exponenta event banner

integralBoxFilter

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

Описание

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

пример

B = integralBoxFilter(A,filterSize) фильтрация интегрального изображения A с фильтром поля 2-D с размером, указанным 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