罗德里格斯公式推导,以及如何使用cv2.Rodrigues进行旋转矩阵和旋转向量之间的相互转化

  • 1 罗德里格斯公式推导
  • 2 cv2.Rodrigues进行旋转矩阵和旋转向量之间的相互转化

1 罗德里格斯公式推导

在三维空间中,旋转矩阵R 可以对坐标系(基向量组)进行刚性的旋转变换:

R = [ r x x r x y r x z r y x r y y r y z r z x r z y r z z ] R=\left[

rxxrxyrxzryxryyryzrzxrzyrzz \right] R=⎣⎡​rxx​ryx​rzx​​rxy​ryy​rzy​​rxz​ryz​rzz​​⎦⎤​

2 cv2.Rodrigues进行旋转矩阵和旋转向量之间的相互转化

我们在使用retval, rvec, tvec = cv2.solvePnP(objp, imgp, K, D_0, flags=cv2.SOLVEPNP_ITERATIVE)会计算得到一个旋转向量rvec,但是我们通常需要把这个旋转向量转换为旋转矩阵

而opencv内置的cv.Rodrigues()函数可以进行将:

1、Rodrigues(src[, dst[, jacobian]]) -> dst, jacobian

2、代码

import cv2
import numpy as npextrinsic = np.array([[0.05812254, 0.9969995, 0.05112498, 0.043909],[-0.02821786, -0.04955038, 0.99837293, -0.026862],[0.99791058, -0.05947061, 0.02525319, -0.006717],[0., 0., 0., 1.]])
rot_mat = extrinsic[:3, :3]
print(f"rot_mat:\n {rot_mat}")# 把旋转矩阵转化为旋转向量
rvec, _ = cv2.Rodrigues(rot_mat)
print(f"rvec:\n {rvec}")# 把旋转向量转换为旋转矩阵
rot_mat, _ = cv2.Rodrigues(rvec)
print(f"rot_mat:\n {rot_mat}")

输出结果如下:

rot_mat:[[ 0.05812254  0.9969995   0.05112498][-0.02821786 -0.04955038  0.99837293][ 0.99791058 -0.05947061  0.02525319]]
rvec:[[-1.25346463][-1.12186936][-1.21480507]]
rot_mat:[[ 0.05812254  0.9969995   0.05112498][-0.02821786 -0.04955038  0.99837293][ 0.99791058 -0.05947061  0.02525319]]

注意:

使用cv.Rodrigues旋转矩阵转换为旋转向量,这个旋转向量并不是欧拉角,因此通过这个旋转矩阵和我们用欧拉角转换得到的旋转矩阵也是有区别的!!!!

[转] 罗德里格斯公式推导,以及如何使用cv2.Rodrigues进行旋转矩阵和旋转向量之间的相互转化相关推荐

  1. 罗德里格斯公式推导,以及如何使用cv2.Rodrigues进行旋转矩阵和旋转向量之间的相互转化

    罗德里格斯公式推导,以及如何使用cv2.Rodrigues进行旋转矩阵和旋转向量之间的相互转化 1 罗德里格斯公式推导 2 cv2.Rodrigues进行旋转矩阵和旋转向量之间的相互转化 1 罗德里格 ...

  2. 详解基于罗德里格斯(Rodrigues)公式由旋转向量到旋转矩阵的 Python 实现

    文章目录 旋转向量 rotation vector 旋转矩阵 rotation matrix 罗德里格斯公式 Rodrigues' formula 基于 Python 和 NumPy 实现 Rodri ...

  3. 旋转矩阵及旋转向量相互转化 Rodrigues矩阵及matlab实现

    处理三维旋转问题时,通常采用旋转矩阵的方式来描述.一个向量乘以旋转矩阵等价于向量以某种方式进行旋转.除了采用旋转矩阵描述外,还可以用旋转向量来描述旋转,旋转向量的长度(模)表示绕轴逆时针旋转的角度(弧 ...

  4. 旋转向量与欧拉角 罗德里格斯公式(Rodrigues's Formula)

    旋转向量 旋转矩阵表达方式 旋转矩阵描述旋转,变换矩阵描述一个6自由度的三维刚体运动.但存在如下缺点: SO(3)的旋转矩阵有9个量,但一次旋转只有3个自由度.因此这种表达方式是冗余的.同理,变换矩阵 ...

  5. 三维旋转四元数系列(2.三维旋转之轴角与罗德里格斯公式推导)

    序:上两节我们介绍了复数的基本概念与性质,以及复数与二维旋转的关系. 三维旋转四元数系列(0.复数基本介绍)https://blog.csdn.net/SKANK911/article/details ...

  6. 三维空间刚体运动2:旋转向量与罗德里格斯公式(最详细推导)

    三维空间刚体运动2:旋转向量与罗德里格斯公式(最详推导) 1.旋转向量定义 2.罗德里格斯公式-向量转换为矩阵 2.1 定义 2.2 推导 2.2.1 推导一 2.2.2 推导二 2.2.3 推导向量 ...

  7. 罗德里格斯(Rodrigues)旋转向量与矩阵的变换

    在做双目立体视觉深度图像生成的时候,遇到旋转向量(1x3)与旋转矩阵(3x3)的概念,得知二者可以通过罗德里格斯相互转化. 1.旋转的表示 处理三维旋转问题时,通常采用旋转矩阵的方式来描述旋转变换.旋 ...

  8. python 实现罗德里格斯公式Rodrigues 旋转向量到旋转矩阵转化

    罗德里格斯公式Rodrigues: 代码: import numpy as npdef rodrigues_rotation(r, theta):# n旋转轴[3x1]# theta为旋转角度# 旋转 ...

  9. 罗德里格斯公式推导(轴角与旋转矩阵的关系)以及四元数与旋转向量、旋转矩阵、欧拉角之间的转换关系

    罗德里格斯公式推导(轴角与旋转矩阵的关系) 意义:罗德里格斯公式表示旋转向量到旋转矩阵之间爱你的转换关系 旋转向量:一个向量,方向与旋转轴一致,长度等于旋转角度 空间中任意旋转都可以用一个旋转轴和一个 ...

最新文章

  1. R语言ggplot2可视化使用lwd和flatten参数调整箱图(boxplot)线条的粗细:中位线和其他线条整体粗细比例更协调
  2. php和python交互-PHP与Python进行数据交互
  3. PMCAFF老友会,产品圈年度最具份量的聚会
  4. GraphPad Prism 9.0.2 for MacOS 2021最新完美版科研绘图统计软件 附安装使用教程
  5. 同时遍历多个dataframe_Java面试-容器的遍历
  6. 协议森林13 9527 (DNS协议)
  7. codeforces 116A-C语言解题报告
  8. mysql 插入优化_MySQL批量SQL插入性能优化
  9. 微信开放平台 公众号第三方平台开发 教程五 代公众号发起网页授权源码
  10. 如何在Ubuntu 14.04上使用Percona XtraBackup创建MySQL数据库的热备份
  11. python可以用vs编辑吗_在VS2017中编写Python程序
  12. 【视频】超级账本HyperLedger:Fabric源码走读(一):项目构建与代码结构
  13. 大数据Hadoop生态系统介绍
  14. D-star Lite算法及其动态路径规划实验研究
  15. 开发人员学习文档下载地址
  16. java-遍历Json
  17. 计算机局域网访问密码设置,win10系统设置局域网访问需要密码的详细办法
  18. 博弈:唯冠和苹果的iPad商标案之争
  19. cadence 17.2 入门学习2 allegro
  20. 有趣的Windows桌面图标

热门文章

  1. ai画面怎么调大小_ai怎么调整画布尺寸? ai设置画布大小的两种方法
  2. 1821464-56-5,Azide-PEG12-Tos单分散PEG试剂,含有叠氮化物基团和对甲苯磺酰基
  3. 微信开放平台全网发布
  4. k8s--Volum存储方式
  5. ImmutableMap
  6. 吃鸡游戏百人语音,如何实现“听声辩位”找队友
  7. know, know abou, and konw of
  8. 阿克曼(Ackermann)函数—递归
  9. 网页直接访问链接不让安全中心拦截
  10. 3D游戏编程与设计作业6-Unity实现打飞碟游戏改进版(Hit UFO)