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