integralImage

Вычислите интегральное изображение

Синтаксис

J = integralImage(I)
J = integralImage(I,orientation)

Описание

пример

J = integralImage(I) вычисляет Интегральное Изображение, J, от изображения интенсивности, I.

пример

J = integralImage(I,orientation) вычисляет интегральное изображение с ориентацией, заданной orientation.

Примеры

свернуть все

Создайте матрицу простой выборки.

I = magic(5)
I = 5×5

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

В интегральном изображении каждый пиксель является совокупной суммой пикселя непосредственно выше его и с его левой стороны от него. Например, в этой тривиальной матрице, пикселе в исходной матрице в строке 1, столбец 1 (значение 17) был бы неизменен в интегральном изображении, потому что вы добавляете 0s в значение. (Функция integralImage добавляет строку 0s выше и слева от исходной матрицы.) Вычисление интегрального значения изображений для пикселя (1,2) в исходной матрице, вы добавляете пиксель выше его (0) и пиксель с его левой стороны от него (17): 24 + 17 +0 = 41. Вычисляя интегральное значение изображений для Пикселя (1,3) в originl матрице, вы добавляете пиксель выше его (0) и пиксель с его левой стороны от него, которая была уже суммирована, 41. Таким образом значение на уровне пикселя (2,4) в интегральном изображении равняется 1 + 41 + 0 = 42. Этот процесс продолжается для каждого пикселя в оригинальном изображении, как вы видите в интегральном изображении исходной матрицы, вычисленной функцией integralImage.

J = integralImage(I)
J = 6×6

     0     0     0     0     0     0
     0    17    41    42    50    65
     0    40    69    77    99   130
     0    44    79   100   142   195
     0    54   101   141   204   260
     0    65   130   195   260   325

Создайте демонстрационное изображение.

I = magic(5)
I = 5×5

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

% Define rotated rectangular region as [x, y, width, height] where x, y
% denote the indices of the top corner of the rectangle. Width and height
% are along 45 degree lines from the top corner.
[x, y, w, h] = deal(3, 1, 3, 2);

Создайте интегральное изображение.

J = integralImage(I, 'rotated');

Вычислите сумму по области с помощью интегрального изображения.

regionSum = J(y+w+h,x+w-h+1) + J(y,x+1) - J(y+h,x-h+1) - J(y+w,x+w+1);

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

свернуть все

Введите полутоновое изображение, заданное как действительная, неразреженная 2D матрица.

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

Ориентация изображения, заданная как 'upright' или 'rotated'. Если вы устанавливаете ориентацию на 'rotated', integralImage возвращает интегральное изображение для вычисления сумм по прямоугольникам, вращаемым 45 градусами. Чтобы упростить вычисление пиксельных сумм вдоль всех границ изображения, integralImage заполняет выходные изображения интеграла можно следующим образом:

Интегральное изображениеОписание
Вертикальное интегральное изображениеДополненный нулем на верхней части и оставленный, приводя к size(J) = size(I)+1
Вращаемое интегральное изображениеДополненный нулем наверху, оставленный, и право, приводящее к size(J) = size(I)+[1 2]

Если входное изображение имеет больше чем две размерности (ndims(I)>2), такой что касается изображения RGB, функция integralImage вычисляет интегральное изображение для всех 2D плоскостей по более высоким измерениям.

Типы данных: char | string

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

свернуть все

Интегральное изображение, возвращенное как действительная, неразреженная матрица класса double. Функциональные нулевые клавиатуры главная и левая сторона интегрального изображения так размер выходного изображения интеграла являются размером как входным изображением, плюс 1, size(J) = size(I)+1. Такая калибровка упрощает легкое вычисление пиксельных сумм вдоль всех границ изображения. Интегральное изображение, J, является по существу заполненной версией значения cumsum(cumsum(I,2)).

Больше о

свернуть все

Интегральное изображение

В integral image каждый пиксель является суммированием пикселей выше и слева от него. Используя интегральное изображение, можно быстро вычислить суммирование по подобластям изображений. Использование интегральных изображений было популяризировано алгоритмом Виолы - Джонса. Интегральные изображения упрощают суммирование пикселей и могут быть выполнены в постоянное время, независимо от размера окружения.

Ссылки

[1] Виола, Пол и Майкл Дж. Джонс, “Быстрое Обнаружение объектов с помощью Повышенного Каскада Простых Функций”, Продолжения 2 001 Конференции Общества эпохи компьютеризации IEEE по Компьютерному зрению и Распознаванию образов, 2001. Объем: 1, pp.511–518.

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

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2015b