我在两个图像中有一个棋盘,有一些旋转角度。让我们参考第一张图像找到第二张图像的旋转角度。
为此,我找到了这些对象的旋转矩阵 (3x3) 和平移矩阵 (3x1)。
如何使用这些矩阵找到对象的旋转角度和旋转轴?
我在两个图像中有一个棋盘,有一些旋转角度。让我们参考第一张图像找到第二张图像的旋转角度。
为此,我找到了这些对象的旋转矩阵 (3x3) 和平移矩阵 (3x1)。
如何使用这些矩阵找到对象的旋转角度和旋转轴?
对于旋转表示之间的每种类型的转换,您都有这个网站欧几里得空间。
您将找到以下理论和代码示例:
关于你的问题,你有轴角。如果您有旋转矩阵 R (3x3),您可以通过这种方式获得角度和轴(请参阅Matrix to Axis Angle):
angle = acos(( R00 + R11 + R22 - 1)/2);
轴 x,y,x:
x = (R21 - R12)/sqrt((R21 - R12)^2+(R02 - R20)^2+(R10 - R01)^2);
y = (R02 - R20)/sqrt((R21 - R12)^2+(R02 - R20)^2+(R10 - R01)^2);
z = (R10 - R01)/sqrt((R21 - R12)^2+(R02 - R20)^2+(R10 - R01)^2);
已经使用 openCV 我会推荐使用 Rodrigues 方法: cv::Rodrigues(src, dst, jacobian),如果你有一个参数的旋转矩阵,它会计算旋转向量,反之亦然。