Вывод пространственного преобразования из пар точек управления
cp2tform не рекомендуется. Использовать fitgeotrans вместо этого.
выводит пространственное преобразование из пар точек управления и возвращает это преобразование как tform = cp2tform(movingPoints,fixedPoints,transformationType)tform структура. Некоторые из типов преобразования имеют необязательные дополнительные параметры, показанные в следующих синтаксисах.
позволяет вам задать порядок используемых полиномов.tform = cp2tform(movingPoints,fixedPoints,'polynomial',degree)
создает отображение путем вывода полинома в каждой контрольной точке с помощью соседних контрольных точек. Отображение в любом месте зависит от взвешенного среднего значения из этих полиномов. Можно опционально задать число точек, tform = cp2tform(movingPoints,fixedPoints,'lwm',n)n, используется для вывода каждого полинома. The 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, «Кусочно-линейные функции отображения для регистрации изображений», Pattern Recognition, Vol. 19, 1986, pp. 459-466.
[2] Goshtasby, Ardeshir, «Регистрация изображений локальными методами приближения», Image and Vision Computing, Vol. 6, 1988, pp. 255-261.
cpcorr | cpselect | cpstruct2pairs | imtransform | tformfwd | tforminv