normxcorr2

Нормированная 2D взаимная корреляция

Синтаксис

C = normxcorr2(template,A)

Описание

пример

C = normxcorr2(template,A) вычисляет нормированную взаимную корреляцию матриц template и A. Получившийся матричный C содержит коэффициенты корреляции.

Опционально можно вычислить нормированную взаимную корреляцию с помощью графического процессора (требует Parallel Computing Toolbox™). Для получения дополнительной информации смотрите Обработку изображений на графическом процессоре.

Примеры

свернуть все

Считайте два изображения в рабочую область и преобразуйте их в шкалу полутонов для использования с normxcorr2. Отобразите изображения бок о бок.

onion   = rgb2gray(imread('onion.png'));
peppers = rgb2gray(imread('peppers.png'));
imshowpair(peppers,onion,'montage')

Выполните взаимную корреляцию и отобразите результат как поверхность.

c = normxcorr2(onion,peppers);
figure, surf(c), shading flat

Найдите пик во взаимной корреляции.

[ypeak, xpeak] = find(c==max(c(:)));

Объясните дополнение, которое добавляет normxcorr2.

yoffSet = ypeak-size(onion,1);
xoffSet = xpeak-size(onion,2);

Отобразите совпадающую область.

figure
imshow(peppers);
imrect(gca, [xoffSet+1, yoffSet+1, size(onion,2), size(onion,1)]);

Считайте два изображения в gpuArray s.

onion   = gpuArray(imread('onion.png'));
peppers = gpuArray(imread('peppers.png'));

Преобразуйте цветные изображения в 2D шкалу полутонов. Функция rgb2gray принимает gpuArray s.

onion   = rgb2gray(onion);
peppers = rgb2gray(peppers);

Выполните взаимную корреляцию и отобразите результат как поверхность.

c = normxcorr2(onion,peppers);
figure, surf(c), shading flat

Найдите пик во взаимной корреляции.

[ypeak, xpeak] = find(c==max(c(:)));

Объясните дополнение, которое добавляет normxcorr2.

yoffSet = ypeak-size(onion,1);
xoffSet = xpeak-size(onion,2);

Положите обратно данные к центральному процессору для отображения.

yoffSet = gather(ypeak-size(onion,1));
xoffSet = gather(xpeak-size(onion,2));

Отобразите совпадающую область.

figure
imshow(peppers);
imrect(gca, [xoffSet+1, yoffSet+1, size(onion,2), size(onion,1)]);

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

свернуть все

Введите шаблон, заданный как числовая матрица. Значения template не могут все быть тем же самым.

Чтобы выполнить вычисление с помощью графического процессора, задайте template как gpuArray, который содержит числовую матрицу.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический

Введите изображение, заданное как числовое изображение. A должен быть больше, чем матричный template для нормализации, чтобы быть значимым.

Нормированная взаимная корреляция является неопределенной операцией в областях, где A имеет нулевое отклонение в полной мере шаблон. В этих областях normxcorr2 присваивает коэффициенты корреляции нуля к выводу C.

Чтобы выполнить вычисление с помощью графического процессора, задайте A как gpuArray, который содержит числовую матрицу.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический

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

свернуть все

Коэффициенты корреляции, возвращенные как числовая матрица со значениями в области значений [-1, 1].

Если коэффициенты корреляции вычисляются с помощью графического процессора, то C возвращен как gpuArray, содержащий числовую матрицу со значениями в области значений [-1, 1].

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

Алгоритмы

normxcorr2 использует следующую общую процедуру [1], [2]:

  1. Вычислите взаимную корреляцию в пространственном или частотном диапазоне, в зависимости от размера изображений.

  2. Вычислите локальные суммы путем предварительного вычисления рабочих сумм [1].

  3. Используйте локальные суммы, чтобы нормировать взаимную корреляцию, чтобы получить коэффициенты корреляции.

Реализация тесно следует за формулой от [1]:

γ(u,v)=x,y[f(x,y)f¯u,v][t(xu,yv)t¯]{x,y[f(x,y)f¯u,v]2x,y[t(xu,yv)t¯]2}0.5

где

  • f изображение.

  • t¯ среднее значение шаблона

  • f¯u,v среднее значение f(x,y) в области под шаблоном.

Ссылки

[2] Haralick, Роберт М., и Линда Г. Шапиро, Компьютер и Видение Робота, Объем II, Аддисон-Уэсли, 1992, стр 316-317.

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

Смотрите также

|

Представлено до R2006a