繁体   English   中英

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

[英]Obtain Rotation Axis from Rotation Matrix and translation vector in OpenCV

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

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

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

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

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

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

  • 四元数到轴角: 链接

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM