OpenCV中文网站

 找回密码
 立即注册
搜索
热搜: 安装 配置
查看: 6651|回复: 3

如何从opencv标定获得旋转向量得到绕各个轴的旋转角度

[复制链接]
发表于 2018-9-3 14:24:10 | 显示全部楼层 |阅读模式
本帖最后由 wochuangye 于 2018-9-3 15:33 编辑


如何从opencv标定获得旋转向量得到绕各个轴的旋转角度?????????
回复

使用道具 举报

 楼主| 发表于 2018-9-3 14:25:53 | 显示全部楼层
上面的 X,Y,Z分别为绕X轴,Y轴,Z轴旋转的角度(弧度)
回复 支持 反对

使用道具 举报

发表于 2018-9-17 22:50:13 | 显示全部楼层
采用位姿估计函数可以求出来
回复 支持 反对

使用道具 举报

发表于 2018-10-16 22:42:20 | 显示全部楼层
仔细查看cvRodrigues2函数。
你先看看维基百科的rodrigues formula,用它从旋转轴生成的旋转矩阵的对角元素,你把他们相加就发现刚好等于2cos(theta)+1,所以你就用旋转矩阵的迹减一除以2就得到cos(theta),再求arccos(cos(theta))就得到theta的值。
至于旋转的方向,旋转矩阵通过rodrigues formula计算出来的可以看成一个对称矩阵加上一个反对称矩阵,而对称矩阵的转置还是本身,而反对称矩阵的转置等于负的自己。所以(R-RT)等于两倍的反对称矩阵,这个反对称矩阵形如一个旋转轴的叉乘矩阵(请查看维基百科)乘以sin(theta)的形式,theta我们已经知道了,因此就可以用R-RT除以sin(theta)得到叉乘矩阵,查看叉乘矩阵的结构可以直接得到旋转轴的三个分量。(这里sin(theta)或cos(theta)等于0的情况要特殊讨论,详情看原函数)。
最后一步是将theta作为值乘以旋转轴的模(这是旋转轴是单位的,模为1),乘完以后theta就保存到了旋转轴向量r的模里,把一个四元数用一个旋转轴(三元数)表示出来。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|OpenCV中文网站

GMT+8, 2024-4-25 06:22 , Processed in 0.009425 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表