根据OpenCV的文档,solvePnp将返回3D-2D点对应的对象姿势的旋转矢量。要获得旋转矩阵,我们可以使用Rodrigues方法将旋转向量转换为旋转矩阵。根据OpenCV文档,我们可以使用以下方法找到theta:
theta = norm(r)
但是我认为norm(r)
将找到向量r
的大小?如果是这样,我们如何从向量r
的大小中找到角度?如果我错了,请纠正我。谢谢。
答案 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。