python+旋转矩阵和旋转向量的互相转换

直接上代码,很简单,就是一个函数(想要弄清原理的可以另寻文章)

在控制台测试

import cv2
import numpy as np
T = np.zeros((1,3), np.float32)
a = (1,2,3)
print(a)
R, j = cv2.Rodrigues(a)
print(R)
a, j = cv2.Rodrigues(R)
print(a)

输出结果:

(0.2, 0.4, 0.8)
[[ 0.62722765 -0.65533377  0.42085997]
 [ 0.72988824  0.6831435  -0.02404381]
 [-0.27175103  0.32226169  0.90680691]]
[[0.2]
 [0.4]
 [0.8]]

如果是旋转向量,会自动转换为旋转矩阵和雅可比矩阵;
如果是旋转矩阵,会自动转换为旋转向量和雅可比矩阵;
可能会出现有些输入数据经过两次Rodrigues之后发生变化,比如(1, 2, 3),如有了解的,欢迎评论区回复,谢谢!

posted @ 2021-04-07 12:35  小Aer  阅读(165)  评论(0编辑  收藏  举报  来源