cpcorr

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

Синтаксис

movingPointsAdjusted = cpcorr(movingPoints,fixedPoints,moving,fixed)

Описание

пример

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

Примечание

moving и изображения fixed должны иметь ту же шкалу для cpcorr, чтобы быть эффективными. Если cpcorr не может коррелировать пару контрольных точек, movingPointsAdjusted содержит те же координаты как movingPoints для той пары.

Примеры

свернуть все

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

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; imshow(moving)
hold on
plot(movingPoints(:,1),movingPoints(:,2),'xw') 
title('moving')

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

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

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')      

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

свернуть все

Координаты контрольных точек в изображении, которое будет преобразовано, заданное как M-by-2 матрица double.

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

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

Координаты контрольных точек в ссылочном изображении, заданном как M-by-2 матрица double.

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

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

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

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

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

свернуть все

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

Советы

cpcorr не может настроить точку, если какое-либо следующее происходит:

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

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

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

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

Алгоритмы

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

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

| | |

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