Вывод пространственного преобразования из пар точек управления
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