python实现:旋转矩阵转换为四元数

简介: python实现:旋转矩阵转换为四元数

1 python实现旋转矩阵转换为四元数

例如:下面把3x3的旋转矩阵转换为四元数

from pyquaternion import Quaternion


rotate_matrix = [[-0.0174524064372832, -0.999847695156391, 0.0],
                 [0.308969929589947, -0.00539309018185907, -0.951056516295153],
                 [0.950911665781176, -0.0165982248672099, 0.309016994374948]]

RM = np.array(rotate_matrix)

# 旋转矩阵转换为四元数
def rotateToQuaternion(rotateMatrix):
    q = Quaternion(matrix=rotateMatrix)
    print(q)  # 0.567 +0.412i -0.419j +0.577k
    print(f"x: {q.x}, y: {q.y}, z: {q.z}, w: {q.w}")
    # x: 0.41198412875061946, y: -0.41923809520381, z: 0.5770317346112972, w: 0.567047506333421
    return q


if __name__ == '__main__':
    rotateMatrixToEulerAngles(RM)
    rotateMatrixToEulerAngles2(RM)

    euler_angles = [-0.05366141770874149, -1.2561686529408898, 1.6272221428848495]
    eulerAnglesToRotationMatrix(euler_angles)

    rotateToQuaternion(RM)

输出结果如下:

0.567 +0.412i -0.419j +0.577k
x: 0.41198412875061946, y: -0.41923809520381, z: 0.5770317346112972, w: 0.567047506333421
目录
相关文章
|
20天前
|
算法框架/工具 C++ Python
根据相机旋转矩阵求解三个轴的旋转角/欧拉角/姿态角 或 旋转矩阵与欧拉角(Euler Angles)之间的相互转换,以及python和C++代码实现
根据相机旋转矩阵求解三个轴的旋转角/欧拉角/姿态角 或 旋转矩阵与欧拉角(Euler Angles)之间的相互转换,以及python和C++代码实现
89 0
|
20天前
|
PHP 计算机视觉
罗德里格斯公式推导,以及如何使用cv2.Rodrigues进行旋转矩阵和旋转向量之间的相互转化
罗德里格斯公式推导,以及如何使用cv2.Rodrigues进行旋转矩阵和旋转向量之间的相互转化
52 0
|
1月前
第4章-变换-4.3-四元数
第4章-变换-4.3-四元数
24 3
|
1月前
|
算法框架/工具
第4章-变换-4.2-特殊矩阵变换和运算
第4章-变换-4.2-特殊矩阵变换和运算
11 0
|
传感器 机器学习/深度学习 算法
【方位估计 】基于music算法均匀线阵的标量阵与矢量阵的方位估计附Matlab源码
【方位估计 】基于music算法均匀线阵的标量阵与矢量阵的方位估计附Matlab源码
|
Python
Python|给定点到原点的螺旋折线(顺时针)长度
Python|给定点到原点的螺旋折线(顺时针)长度
66 0
|
Web App开发 Windows
|
算法 API 计算机视觉
OpenCV(图像处理)-基于Python-图像的基本变换-平移-翻转-仿射变换-透视变换
OpenCV(图像处理)-基于Python-图像的基本变换-平移-翻转-仿射变换-透视变换
161 0
|
前端开发 数据可视化 图形学
【数学篇】09 # 如何用仿射变换对几何图形进行坐标变换?
【数学篇】09 # 如何用仿射变换对几何图形进行坐标变换?
139 0
【数学篇】09 # 如何用仿射变换对几何图形进行坐标变换?
|
前端开发 数据可视化 API
【数学篇】05 # 如何用向量和坐标系描述点和线段?
【数学篇】05 # 如何用向量和坐标系描述点和线段?
180 0
【数学篇】05 # 如何用向量和坐标系描述点和线段?