我们如何从旋转矩阵中找到theta?

时间:2019-05-14 13:34:56

标签: opencv image-processing computer-vision

根据OpenCV的文档,solvePnp将返回3D-2D点对应的对象姿势的旋转矢量。要获得旋转矩阵,我们可以使用Rodrigues方法将旋转向量转换为旋转矩阵。根据OpenCV文档,我们可以使用以下方法找到theta:

theta = norm(r)

但是我认为norm(r)将找到向量r的大小?如果是这样,我们如何从向量r的大小中找到角度?如果我错了,请纠正我。谢谢。

1 个答案:

答案 0 :(得分:0)

给定旋转矢量 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title> iESG </title><link href="css/bootstrap.min.css" rel="stylesheet" /><link href="font-awesome/css/font-awesome.css" rel="stylesheet" /><link href="css/animate.css" rel="stylesheet" /><link href="css/style.css" rel="stylesheet" /></head> <body class="gray-bg"> <div class="middle-box text-center loginscreen animated fadeInDown"> <div> <div> <img src="images/logo.png" width="300" height="198" /> </div> <h3><span id="uiAccessDeniedLabel">Error Occurred</span></h3> <a href="#" onclick="window.history.go(-2);">Back</a> <p class="m-t"> <small><span id="uiCopyrightStatement"></span></p> <small><a id="uiTerms">Terms</a></small> | <small><a id="uiPrivacy">Privacy</a></small> </div> </div> <script src="js/jquery-2.1.1.js"></script> <script src="js/bootstrap.min.js"></script> </body> </html> ,其长度(在Python中为r)是绕轴旋转的角度,其方向是矢量的方向。旋转的感觉遵循“右手法则”:如果您的右手竖起大拇指,以拇指为矢量,则其他手指将这些矢量包裹为旋转(等效地,旋转的感觉就是当其尖端指向矢量时使普通螺钉前进。

相同的旋转可以表示为3x3矩阵,也可以表示为(Euler)角的三倍,或者表示为围绕最多3个正交轴的旋转。通常,代表相同旋转的欧拉角有许多不同的三元组。有关详细信息,请查阅教科书或Wikipedia。