我需要将旋转矩阵转换为欧拉角。
在这个博客https://www.learnopencv.com/rotation-matrix-to-euler-angles/之后,我看到了类似的Python代码(使用'z,y,x'的顺序):
def rotation_matrix_to_euler_angles(matrix):
sy = math.sqrt(matrix[0,0] * matrix[0,0] + matrix[1,0] * matrix[1,0])
singular = sy < 1e-6
if not singular :
x = math.atan2(matrix[2, 1] , matrix[2, 2])
y = math.atan2(-matrix[2,0], sy)
z = math.atan2(matrix[1,0], matrix[0,0])
else :
x = math.atan2(-matrix[1, 2], matrix[1, 1])
y = math.atan2(-matrix[2,0], sy)
z = 0
return [x, y, z]
或者您可以在以下位置找到其他订单的其他解决方案: https://www.geometrictools.com/Documentation/EulerAngles.pdf
但是在博客和PDF中,他们没有提到他们使用的是哪种参考框架。所以我不确定,此解决方案是旋转的全局参照系还是局部参照系。