findHomography()/ 3x3矩阵 - 如何从中获取旋转部分?

时间:2012-11-13 21:25:08

标签: opencv matrix rotation translation vector-graphics

作为调用findHomography()的结果,我得到了一个3x3矩阵mtx [3] [3]。该矩阵包含mtx [0] [2]和mtx [1] [2]中的平移部分。但是如何从这个3x3矩阵中获得旋转部分?

不幸的是,我的目标系统使用完全不同的计算,所以我不能直接重用3x3矩阵,必须从中提取旋转,这就是我问这个问题的原因。

3 个答案:

答案 0 :(得分:1)

一般来说,您无法将最终转换矩阵分解为其组成部分。在某些情况下,有可能。例如,如果操作之前的唯一操作是翻译,那么你可以做arccos(m [0] [0])来获得旋转的theta值。

答案 1 :(得分:1)

为我自己找到它:有一个OpenCV函数RQDecomp3x3(),可以用来从矩阵中提取部分转换。

答案 2 :(得分:0)

RQDecomp3x3在Z以外的其他轴上返回旋转有问题,所以这样你就可以正确地找到z轴上的旋转,如果找到投影矩阵并将其传递给“decomposeProjectionMatrix”,你会发现更好的突击,投影矩阵是不同的对于单应矩阵你应该注意这一点。