Matlab与Opencv的旋转向量有何不同?

文章讨论了在将Matlab中的旋转矩阵R应用于Opencv时遇到的问题。由于矩阵存储顺序的不同,需要先对Matlab的旋转矩阵进行转置,然后使用Opencv的cv::Rodrigues函数进行旋转向量计算。结果发现,两个环境计算出的旋转向量互为负数。
摘要由CSDN通过智能技术生成

计算旋转矩阵的函数:
Matlab:

//其中R是旋转矩阵,r是旋转向量
R=rotationMatrixToVector(r)

Opencv:

//其中R是旋转矩阵,r是旋转向量
cv::Rodrigues(R,r);

  在工作中,我遇到了这么一种情况,就是要用Matlab标定出来的旋转矩阵R,代入到opencv的程序中去。由于Matlab的矩阵是列主序的,而Opencv的矩阵是行主序。
  因此,首先要对Matlab的旋转矩阵做转置操作

//在Opencv中
R = R.t();

  然后再使用Opencv的旋转向量计算公式。
  最后,其实Matlab和Opencv计算出来的旋转向量互为负数。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值