有谁知道任何标准算法来基于两个坐标系中的一组已知点来确定仿射变换矩阵?
仿射变换由2x3矩阵给出。我们通过获取2D输入(xy),将其撞到3D向量(xy 1),然后乘以M(在左侧)来执行仿射变换M。
因此,如果我们有三个点(x1 y1)(x2 y2)(x3 y3)映射到(u1 v1)(u2 v2)(u3 v3)
[x1 x2 x3] [u1 u2 u3] M [y1 y2 y3] = [v1 v2 v3]. [ 1 1 1]
您可以简单地通过在右边乘以
[x1 x2 x3] [y1 y2 y3] [ 1 1 1].
一个2x3矩阵在右边乘以一个3x3矩阵,得到我们想要的2x3。(您实际上并不需要完整的逆,但是如果矩阵逆可用,则易于使用。)
轻松适应其他尺寸。如果您的得分超过3,则可能需要最小二乘方最佳拟合。您将不得不再次询问,但这会有点困难。