首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解旋转矩阵求角

解旋转矩阵求角
EN

Stack Overflow用户
提问于 2014-02-05 06:16:31
回答 1查看 2.1K关注 0票数 2

我使用这个代码作为基础,在镜头中检测我的矩形目标,我使用ORB和Flann,我成功地使用findHomography()和perspectiveTransform()函数绘制了场景中检测到的目标的边框。

参考图像(上述代码中的img_object)是矩形target.Now的直视图像,我的场景图像中的目标可以向前或向后倾斜。我想找出它被倾斜的角度。我阅读了各种帖子,得出了findHomography()返回的同形可以分解为旋转矩阵和平移向量的结论。我使用了此链接推荐的https:/gist.github.com/inspirit/740979的代码,翻译为C++.This是从OpenCV的相机校准模块获得的张SVD分解代码,我从O‘’Reilly的学习OpenCV一书中得到了对这个分解代码的完整解释。

我还在匹配器返回的关键点上使用solvePnP()交叉检查旋转矩阵和从同形分解返回的平移向量,但它们似乎不相同。

我已经得到了所有场景图像倾斜度的测量结果,我找到了从旋转矩阵中提取角度的两种方法,以检查它们是否与我的值匹配。

  • 给定3×3旋转矩阵 R= r_{11} & r_{12} & r_{13} r_{31} & r_{32} & r_{33}

三个欧拉角是

theta_{x} = atan2(r_{32},r_{33})

theta_{y} = atan2(-r_{31},sqrt{r_{32}^2 + r_{33}^2})

theta_{z} = atan2(r_{21},r_{11})

  • 轴,角度表示-是一个一般的旋转矩阵,其对应的旋转轴u和旋转角θ可以从: cos(θ) =( trace(R)−1) /2 u×= (R−R⊤) /2 sin(θ)

我用这两种方法来计算旋转矩阵的角度,这两种方法都是从同形分解得到的,并且解p().All,角度是不同的,并且给出了非常意想不到的值。

在我的理解中有漏洞吗?我不知道我的计算在哪里,wrong.Are有什么可供选择的吗?

EN

回答 1

Stack Overflow用户

发布于 2014-02-06 15:33:03

你为什么指望他们是一样的?他们根本不是一回事。

欧拉角是从世界框架开始,一次旋转一个轴的三个角度。

罗德里格斯公式给出了世界框架中一个向量的分量,以及该向量的旋转角度。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21569934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档