从旋转矩阵和OpenCV中的平移向量获取旋转轴

ara*_*nga 5 opengl opencv rotation image-rotation

我有两个带有一定旋转角度的棋盘.让我们参考第一张图像找到第二张图像的旋转角度.

为此,我找到了这些对象的旋转矩阵(3x3)和平移矩阵(3x1).

如何使用这些矩阵找到对象的旋转角度旋转轴

Jav*_*ock 9

对于旋转表示之间的每种类型的转换,您都拥有此网站的欧几里德空间.

您将找到以下理论和代码示例:

  • 旋转矩阵到四元数:链接

  • 四元数到轴角:链接

  • 一般轮换和所有表示:链接

相对于你的问题,你有轴角.如果您有旋转矩阵R(3x3),则可以通过这种方式获得角度和轴(请参见矩阵到轴角度):

  • angle = acos(( R00 + R11 + R22 - 1)/2);

  • 轴x,y,x:

    x =(R21-R12)/ sqrt((R21-R12)^ 2 +(R02-R20)^ 2 +(R10-R01)^ 2);

    y =(R02-R20)/ sqrt((R21-R12)^ 2 +(R02-R20)^ 2 +(R10-R01)^ 2);

    z =(R10-R01)/ sqrt((R21-R12)^ 2 +(R02-R20)^ 2 +(R10-R01)^ 2);