getAffineTransform - opencv

时间:2013-11-01 16:36:22

标签: c++ opencv affinetransform

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

Q2。如果我知道这些点只能通过旋转和平移进行变换而不进行任何缩放,那么最容易从getAffineTransform返回的变换矩阵中删除缩放。

1 个答案:

答案 0 :(得分:6)

A1,是的,只要两组点不共线,解决方案就应该是唯一的。

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

[ A B C ]
[ D E F ]

C是你在x中的翻译; F是你的翻译。两者都是规模不变的。

如果采用最左边的术语,则这些术语对应于旋转和缩放

[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)