[英]Obtain Rotation Axis from Rotation Matrix and translation vector in OpenCV
我有两个带有一定旋转角度的棋盘。 让我们参考第一张图像找到第二张图像的旋转角度。
为此,我找到了这些对象的旋转矩阵(3x3)和平移矩阵(3x1)。
如何使用这些矩阵找到对象的旋转角度和旋转轴 ?
对于旋转表示之间的每种类型的转换,您都拥有此网站的欧几里德空间 。
您将找到以下理论和代码示例:
关于你的问题,你有Axis Angle。 如果您有旋转矩阵R(3x3),则可以通过这种方式获得角度和轴(请参见矩阵到轴角度 ):
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) ,如果你有一个参数的旋转矩阵,则计算旋转向量,反之亦然。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.