确定球体表面上的数据旋转

时间:2016-12-21 12:23:24

标签: opencv rotation pattern-matching rotational-matrices euler-angles

假设我有一个来自球体表面的两个相同的数据集,例如如下图所示,其中一个被任意Euler angles旋转。 我想找出数据相对于彼此旋转的欧拉角。

  • 最好(最有效)的方法是什么?
  • 使用像this one这样的模式匹配算法是否有意义?
  • 可以在不将球体表面投影到2D平面上的情况下完成此任务吗?这种预测不可避免地会引起严重的扭曲。
顺便说一句,我不是要求代码或工作解决方案。我对一般的想法或可能使用的工具箱更感兴趣。

Data on the surface of a sphere

1 个答案:

答案 0 :(得分:2)

最简单的方法是从一个球体中提取特征,如x1,x2,...,xN,从另一个球体中提取y1,y2,...,yN,并使用{来估计旋转矩阵{3}}通过将这些3D方向向量连接到A和B矩阵中。

事实上,我相信这只有两个特征点是可能的(所以在上面的例子中,使用红色表示的两个局部最大值)。如果第一个解决方案给出了具有负决定因素的正交矩阵,请尝试切换对上的标签,以便此方案返回正确的旋转矩阵。

从旋转矩阵中,可以直接提取欧拉角(但考虑使用Procrustes trick参数化)。

或者,沿着Rodrigues上的兔洞走下去。