【问题标题】:Obtain Rotation Axis from Rotation Matrix and translation vector in OpenCV从 OpenCV 中的旋转矩阵和平移向量中获取旋转轴
【发布时间】:2012-09-09 22:03:12
【问题描述】:

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

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

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

【问题讨论】:

  • 如果您只想要旋转矩阵的轴角表示,那么您根本不需要平移矩阵。您可以在互联网上的任何地方找到转换,例如 Wikipedia article 关于旋转矩阵的“2.3 从和到轴角的转换”部分。

标签: opengl opencv rotation image-rotation


【解决方案1】:

对于轮换表示之间的每种类型的转换,您都有这个网站euclidean space

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

  • 旋转矩阵到四元数:link

  • 四元数到轴的角度:link

  • 一般轮换和所有表示:link

关于你的问题你有Axis Angle.如果你有旋转矩阵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);

【讨论】:

  • 嗨..jav 我还有一个问题。我的对象平行于轮子放置。当轮子移动时,我的对象也使用旋转矩阵移动我计算了角度和旋转轴.现在的问题是,如何计算轮心或主轴的旋转角度。i47.tinypic.com/344vck6.jpg
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2014-06-10
    • 2013-12-06
    • 1970-01-01
    • 2011-10-14
    • 1970-01-01
    • 2012-05-05
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    相关资源
    最近更新 更多