Q1。我想将点(x1,x2,x3)与点(y1,y2,y3)匹配。无论这些点的顺序如何,getAffineTransform函数是否总是返回相同的转换矩阵?

Q2。如果我知道这些点仅通过旋转和平移进行变换而没有任何缩放,那么最简单的方法是从getAffineTransform返回的变换矩阵中删除缩放。

最佳答案

A1,是的,只要两组点不是共线的,则解应该是唯一的。

A2,您的结果矩阵将采用以下形式:

[ A B C ]
[ D E F ]

C是您在x中的译文; F是您在y中的翻译。两者都是尺度不变的。

如果采用最左边的术语,则它们对应于旋转和比例
[A B]
[D E]

在以下公式中:
[I cos(t)  -I sin(f)]
[J sin(t) J cos (F)]

其中I是x的比例,J是y的比例。

要删除缩放比例,请先将A和B除以sqrt(A * A + B * B),然后将D和E除以sqrt(D * D + E * E)

关于c++ - getAffineTransform-opencv,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19731143/

10-11 21:49