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
目录
相关文章
|
4月前
|
算法框架/工具 C++ Python
根据相机旋转矩阵求解三个轴的旋转角/欧拉角/姿态角 或 旋转矩阵与欧拉角(Euler Angles)之间的相互转换,以及python和C++代码实现
根据相机旋转矩阵求解三个轴的旋转角/欧拉角/姿态角 或 旋转矩阵与欧拉角(Euler Angles)之间的相互转换,以及python和C++代码实现
312 0
|
4月前
第4章-变换-4.3-四元数
第4章-变换-4.3-四元数
37 3
|
4月前
|
算法框架/工具
第4章-变换-4.2-特殊矩阵变换和运算
第4章-变换-4.2-特殊矩阵变换和运算
17 0
|
4月前
旋转矩阵与欧拉角的相互转换
旋转矩阵与欧拉角的相互转换
146 0
|
算法 Java 图形学
算数几何的绘制
算数几何的绘制
75 0
算数几何的绘制
|
传感器 机器学习/深度学习 算法
【方位估计 】基于music算法均匀线阵的标量阵与矢量阵的方位估计附Matlab源码
【方位估计 】基于music算法均匀线阵的标量阵与矢量阵的方位估计附Matlab源码
|
Web App开发 Windows
|
前端开发 数据可视化 图形学
【数学篇】09 # 如何用仿射变换对几何图形进行坐标变换?
【数学篇】09 # 如何用仿射变换对几何图形进行坐标变换?
156 0
【数学篇】09 # 如何用仿射变换对几何图形进行坐标变换?
|
前端开发 数据可视化 API
【数学篇】05 # 如何用向量和坐标系描述点和线段?
【数学篇】05 # 如何用向量和坐标系描述点和线段?
195 0
【数学篇】05 # 如何用向量和坐标系描述点和线段?
|
计算机视觉
数字图像处理实验(二)|图像变换{离散傅里叶变换fft2,离散余弦变换dct2、频谱平移fftshift}(附实验代码和截图)
数字图像处理实验(二)|图像变换{离散傅里叶变换fft2,离散余弦变换dct2、频谱平移fftshift}(附实验代码和截图)
419 0
数字图像处理实验(二)|图像变换{离散傅里叶变换fft2,离散余弦变换dct2、频谱平移fftshift}(附实验代码和截图)