cp2tform
从控制点对推断空间变换
cp2tform
不建议使用。使用fitgeotrans
代替。
语法
TFORM = cp2tform(movingPoints,fixedPoints, transformtype)
TFORM = cp2tform(CPSTRUCT, transformtype)
[TFORM, movingPoints, fixedPoints] = cp2tform(CPSTRUCT,…)
TFORM = cp2tform(movingPoints,fixedPoints, '多项式',order)
TFORM = cp2tform(CPSTRUCT,'多项式',order)
TFORM = cp2tform(movingPoints,fixedPoints,'分段线性')
TFORM = cp2tform(CPSTRUCT,'分段线性')
TFORM = cp2tform(movingPoints,fixedPoints,'lwm', N)
TFORM = cp2tform(CPSTRUCT, 'lwm', N)
[TFORM, movingPoints, fixedPoints, movingPoints_bad, fixedPoints_bad] = cp2tform(movingPoints, fixedPoints, '分段线性')
[TFORM, movingPoints, fixedPoints, movingPoints_bad, fixedPoints_bad] = cp2tform(CPSTRUCT, '分段线性')
描述
从控制点对推断空间转换,并将此转换作为a返回TFORM
= cp2tform (movingPoints
,定点
,transformtype
)TFORM
结构。
工作在TFORM
= cp2tform (CPSTRUCT
,transformtype
)CPSTRUCT
结构,该结构包含移动和固定图像的控制点矩阵。控制点选择工具,cpselect
,创建CPSTRUCT
.
[
返回中使用的控制点TFORM
,movingPoints
,定点
= cp2tform(CPSTRUCT
,……)movingPoints
而且定点
.不使用未匹配点和预测点。看到cpstruct2pairs
.
让你指定多项式的使用顺序。TFORM
= cp2tform (movingPoints
,定点
,“多项式”,顺序)
工作在TFORM
= cp2tform (CPSTRUCT
,多项式,秩序
)CPSTRUCT
结构。
创建固定控制点的Delaunay三角剖分,并将相应的移动控制点映射到固定控制点。映射对于每个三角形都是线性的(仿射),并且在控制点上是连续的,但不是连续可微的,因为每个三角形都有自己的映射。TFORM
= cp2tform (movingPoints
,定点
,分段线性的
)
工作在TFORM
= cp2tform (CPSTRUCT
,分段线性的
)CPSTRUCT
结构。
通过使用相邻控制点在每个控制点推断一个多项式来创建映射。任何位置的映射依赖于这些多项式的加权平均。你可以选择指定点数,TFORM
= cp2tform (movingPoints
,定点
,“lwm”
,N
)N
,用于推断每个多项式。的N
最接近点用于推断每个控制点对的2阶多项式。如果你省略了N
,默认为12。N
可以小到6,但是制造N
产生病态多项式的小风险。
工作在TFORM
= cp2tform (CPSTRUCT
,“lwm”
,N
)CPSTRUCT
结构。
[
返回中使用的控制点TFORM
,movingPoints
,定点
,movingPoints_bad
,fixedPoints_bad
= cp2tform(movingPoints
,定点
,分段线性的
)movingPoints
而且定点
控制点被消除了因为它们是退化折叠三角形的中间顶点movingPoints_bad
而且fixedPoints_bad
.
[
工作在TFORM
,movingPoints
,定点
,movingPoints_bad
,fixedPoints_bad
= cp2tform(CPSTRUCT
,分段线性的
)CPSTRUCT
结构.
输入参数
|
米2, |
|
米2, |
|
指定要推断的空间转换类型。的 |
|
包含移动和固定图像的控制点矩阵的结构。使用控制点选择工具( |
|
指定要使用的多项式的顺序。 默认值:3. |
|
每一块都是线性的,连续的,不可连续微的。 |
|
局部加权平均值。 |
|
点数。 |
输出参数
|
结构包含空间变换。 |
|
移动控制点用来推断空间变换。不使用未匹配点和预测点。 |
|
固定的控制点用于推断空间变换。不使用未匹配点和预测点。 |
|
移动控制点被排除,因为它们被确定为异常值。 |
|
固定控制点被排除,因为它们被确定为异常值。 |
例子
转换图像,使用cp2tform
函数返回变换,并比较的角度和尺度TFORM
到原变换的角度和尺度:
I =棋盘;J = imrotate(I,30);fixedPoints = [11 11;41 71];movingPoints = [14 44;70 81);cpselect (J,我,movingPoints定点);t = cp2tform(movingPoints,fixedPoints,'非反射相似性');通过检查平行于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
是“无反射相似”
,“相似”
,仿射的
,“射影”
,或多项式的
,movingPoints
而且定点
(或CPSTRUCT
)拥有某一特定转换所需的最少控制点数目,cp2tform
准确地求出系数。如果
movingPoints
而且定点
当控制点个数大于最小值时,求出最小二乘解。看到mldivide
.当
movingPoints
或定点
相对于它们的原点(相对于它所涵盖的值范围)有较大的偏移,cp2tform
在拟合a之前,将点移动到其边界框的原点中心TFORM
结构。这增强了数值稳定性,并通过以原点为中心包装透明地处理TFORM
在一个定制中TFORM
这将根据需要自动应用和撤消坐标移位。结果,字段(T)
可以为不同的坐标输入给出不同的结果,甚至对于相同的转换类型。
算法
参考文献
[1] Goshtasby, Ardeshir,“用于图像配准的分段线性映射函数”,模式识别,第19卷,1986,第459-466页。
[2] Goshtasby, Ardeshir,“局部逼近方法的图像配准”,图像与视觉计算,第6卷,1988,第255-261页。