(Не рекомендуемый), Выводят пространственное преобразование из пар контрольной точки
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.