8

我在两个图像中有一个棋盘,有一些旋转角度。让我们参考第一张图像找到第二张图像的旋转角度。

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

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

4

2 回答 2

11

对于旋转表示之间的每种类型的转换,您都有这个网站欧几里得空间

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

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

  • 四元数到轴角:链接

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

关于你的问题,你有轴角。如果您有旋转矩阵 R (3x3),您可以通过这种方式获得角度和轴(请参阅Matrix to Axis Angle):

  • 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);

于 2012-09-18T07:50:41.117 回答
1

已经使用 openCV 我会推荐使用 Rodrigues 方法: cv::Rodrigues(src, dst, jacobian),如果你有一个参数的旋转矩阵,它会计算旋转向量,反之亦然。

于 2019-01-23T10:04:17.647 回答