cpcorr

Настройте местоположения контрольной точки с помощью взаимной корреляции

Описание

пример

movingPointsAdjusted = cpcorr(movingPoints,fixedPoints,moving,fixed) регулирует положение перемещения контрольных точек, movingPoints, относительно фиксированных контрольных точек, fixedPoints, использование нормированной взаимной корреляции между движущимся изображением moving и фиксированное изображение fixed. cpcorr функция возвращает настроенные движущиеся контрольные точки в movingPointsAdjusted.

Примеры

свернуть все

Считайте два изображения в рабочую область.

moving = imread('onion.png');
fixed = imread('peppers.png');

Задайте наборы контрольных точек для обоих изображений.

movingPoints = [118 42;99 87];
fixedPoints = [190 114;171 165];

Отобразите изображения и отобразите контрольные точки в белом.

figure; imshow(fixed)
hold on
plot(fixedPoints(:,1),fixedPoints(:,2),'xw') 
title('fixed')

Figure contains an axes. The axes with title fixed contains 2 objects of type image, line.

figure; imshow(moving)
hold on
plot(movingPoints(:,1),movingPoints(:,2),'xw') 
title('moving')

Figure contains an axes. The axes with title moving contains 2 objects of type image, line.

Наблюдайте небольшие ошибки в положении движущихся точек.

Настройте движущиеся контрольные точки с помощью взаимной корреляции.

movingPointsAdjusted = cpcorr(movingPoints,fixedPoints,...
                              moving(:,:,1),fixed(:,:,1))
movingPointsAdjusted = 2×2

  115.9000   39.1000
   97.0000   89.9000

Отобразите настроенные перемещающие точки желтого цвета. По сравнению с исходными движущимися точками (в белом), настроенные точки более тесно совпадают с положениями фиксированных точек.

plot(movingPointsAdjusted(:,1),movingPointsAdjusted(:,2),'xy')      

Figure contains an axes. The axes with title moving contains 3 objects of type image, line.

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

свернуть все

Координаты контрольных точек в изображении, которое будет преобразовано в виде m-by-2 матрица. Эти два столбца представляют x - и y - координаты контрольных точек, соответственно, во внутренней системе координат изображения.

Пример: [127 93; 74 59]

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

Координаты контрольных точек в ссылочном изображении в виде p-by-2 матрица. Эти два столбца представляют x - и y - координаты контрольных точек, соответственно, во внутренней системе координат изображения.

Пример: [323 195; 269 161]

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

Отобразите, чтобы быть указанными в виде числового массива.

Ссылочное изображение в целевой ориентации в виде числового массива.

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

свернуть все

Настроенные координаты контрольных точек в изображении, которое будет преобразовано, возвращенное как числовая матрица одного размера с movingPoints.

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

Советы

  • moving и fixed изображения должны иметь ту же шкалу для cpcorr быть эффективным.

  • Если cpcorr не может коррелировать пару контрольных точек, movingPointsAdjusted содержит те же координаты как movingPoints для той пары.

  • cpcorr не может настроить точку, если какое-либо из этих условий происходит:

    • точки также около ребра любого изображения

    • области изображений вокруг точек содержат Inf или NaN

    • область вокруг точки в движущемся изображении имеет нулевое стандартное отклонение

    • области изображений вокруг точек плохо коррелируются

Алгоритмы

cpcorr только перемещает положение контрольной точки максимум на четыре пикселя. Настроенные координаты являются точной до одной десятой пикселя. cpcorr спроектирован, чтобы получить субпиксельную точность от содержимого изображения и выбора точки грубой регулировки.

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