(Не рекомендуемый), Выводят пространственное преобразование из пар контрольной точки
cp2tform
не рекомендуется. Использование fitgeotrans
вместо этого.
выводит пространственное преобразование из пар контрольной точки и возвращает это преобразование как tform
= cp2tform(movingPoints
,fixedPoints
,transformationType
)tform
структура. Некоторые типы преобразования имеют дополнительные дополнительные параметры, показанные в следующих синтаксисах.
позволяет вам задать порядок полиномов использовать.tform
= cp2tform(movingPoints
,fixedPoints
,'polynomial',degree
)
создает отображение путем выведения полинома при каждом использовании контрольной точки, граничащем с контрольными точками. Отображение в любом местоположении зависит от взвешенного среднего этих полиномов. Можно опционально задать число точек, tform
= cp2tform(movingPoints
,fixedPoints
,'lwm',n
)n
, используемый, чтобы вывести каждый полином. То
самые близкие точки используются, чтобы вывести полином порядка 2 для каждой пары контрольной точки.
создает Триангуляцию Делоне фиксированных контрольных точек и сопоставляет соответствующие движущиеся контрольные точки с фиксированными контрольными точками. Отображение линейно (аффинно) для каждого треугольника и непрерывно через контрольные точки, но не непрерывно дифференцируемо, когда каждый треугольник имеет свое собственное отображение.tform
= cp2tform(movingPoints
,fixedPoints
,'piecewise linear')
[
возвращается в tform
,usedMP
,usedFP
,badMP
,badFP
] = cp2tform(movingPoints
,fixedPoints
,'piecewise linear')usedMP
и usedFP
контрольные точки, которые использовались для кусочного линейного преобразования. Этот синтаксис также возвращается в badMP
и badFP
контрольные точки, которые были устранены, потому что они были средними вершинами вырожденного сгиба - по треугольникам.
использует tform
= cp2tform(cpstruct
,transformationType
,___)cpstruct
структура, чтобы сохранить координаты контрольной точки перемещения и зафиксированных изображений.
[
также возвращается в tform
,usedMP
,usedFP
]
= cp2tform(cpstruct
,transformationType
,___)usedMP
и usedFP
контрольные точки, которые использовались для преобразования. Несопоставленные и предсказанные точки не используются. Смотрите cpstruct2pairs
.
Преобразуйте изображение, используйте cp2tform
функционируйте, чтобы возвратить преобразование и сравнить угол и шкалу tform
к углу и шкале исходного преобразования:
I = checkerboard;
J = imrotate(I,30);
fixedPoints = [11 11; 41 71];
movingPoints = [14 44; 70 81];
cpselect(J,I,movingPoints,fixedPoints);
t = cp2tform(movingPoints,fixedPoints,'nonreflective similarity');
Восстановите угол и шкалу путем проверки, как единичный вектор, параллельный x - ось, вращается и расширяется.
u = [0 1]; v = [0 0]; [x, y] = tformfwd(t,u,v); dx = x(2) - x(1); dy = y(2) - y(1); angle = (180/pi) * atan2(dy, dx) scale = 1 / sqrt(dx^2 + dy^2)
Когда transformtype
'nonreflective similarity'
, 'similarity'
, 'affine'
, 'projective'
, или 'polynomial'
, и movingPoints
и fixedPoints
(или cpstruct
) имейте минимальное количество контрольных точек, необходимых для конкретного преобразования, cp2tform
находит коэффициенты точно.
Если movingPoints
и fixedPoints
имейте больше, чем минимальное количество контрольных точек, решение методом наименьших квадратов найдено. Смотрите mldivide
.
Когда любой movingPoints
или fixedPoints
имеет большое смещение относительно их источника (относительно области значений значений, которые это охватывает), cp2tform
переключает точки, чтобы сосредоточить их ограничительную рамку на источнике прежде, чем соответствовать tform
структура. Это улучшает числовую устойчивость и обработано прозрачно путем переноса сосредоточенного источником tform
в пользовательском tform
это автоматически применяет и отменяет координатный сдвиг по мере необходимости. В результате fields(T)
может дать различные результаты для различных координатных входных параметров, даже для того же типа преобразования.
[1] Goshtasby, Ardeshir, "Кусочное линейное отображение функционирует для регистрации изображений", Распознавание образов, Издание 19, 1986, стр 459-466.
[2] Goshtasby, Ardeshir, "Регистрация изображений локальными методами приближения", Изображение и Вычисление Видения, Издание 6, 1988, стр 255-261.