Sla*_*mac 0 c++ opencv affinetransform
Q1.我想将点(x1,x2,x3)与点(y1,y2,y3)匹配.getAffineTransform无论这些点的顺序是什么,函数总是返回相同的变换矩阵吗?
Q2.如果我知道这些点只能通过旋转和平移进行变换而不进行任何缩放,那么从返回的变换矩阵中删除缩放的最简单方法是什么getAffineTransform.
A1,是的,只要两组点不共线,解决方案应该是唯一的.
A2,您的结果矩阵将采用以下形式:
[ A B C ]
[ D E F ]
Run Code Online (Sandbox Code Playgroud)
C是你在x中的翻译; F是你的翻译.两者都是规模不变的.
如果采用最左边的术语,则这些术语对应于旋转和缩放
[A B]
[D E]
Run Code Online (Sandbox Code Playgroud)
在以下公式中:
[I cos(t) -I sin(f)]
[J sin(t) J cos (F)]
Run Code Online (Sandbox Code Playgroud)
其中I是x中的比例,J是y中的比例.
要删除缩放比例,除以A和B乘sqrt(A*A + B*B),D和E除以sqrt(D*D + E*E)