gpt4 book ai didi

c++ - findHomography()中得到的矩阵的单应分解

转载 作者:太空宇宙 更新时间:2023-11-04 13:55:40 24 4
gpt4 key购买 nike

我用过这个code作为在场景中检测我的矩形目标的基础。我使用 ORB 和 Flann Matcher。我已经能够使用 findHomography()perspectiveTransform() 函数在我的场景中成功绘制检测到的目标的边界框。
引用图像(上面代码中的 img_object)是仅矩形目标的直 View 。现在我的场景图像中的目标可能会向前或向后倾斜。我想找出它倾斜的角度。我阅读了各种帖子并得出结论,findHomography() 返回的单应性可以分解为旋转矩阵和平移 vector 。我使用了 https:/gist.github.com/inspirit/740979 中的代码this link推荐翻译成 C++。这是从OpenCV的相机标定模块得到的Zhang SVD分解代码。我从 O'Reilly 的 Learning OpenCV 一书中得到了这个分解代码的完整解释。
我的问题是:

  1. 我假设我得到的分解旋转矩阵会告诉我目标倾斜的角度是否正确?
  2. 其次,我能否使用从 findHomography() 中获得的单应性作为此分解模块的输入并期望得到正确的输出?还是我遗漏了什么?
  3. 有没有其他方法可以达到同样的目的?

最后,我在移动平台上编码,所以我也很关心性能。如果您能指出正确的方向,我会很高兴。

提前感谢您的时间和答复。

最佳答案

张的校准程序会产生一个旋转矩阵。这表示为 3 个(欧拉)角,而不是一个。或者,等效地(通过 Rodriguez 的公式),作为一个单位 vector 和围绕该 vector 的旋转角度 - 即再次为三个数字。

除非您的相机和目标相对于彼此非常仔细地定位,否则没有理由期望只有一个非零旋转角度。

关于c++ - findHomography()中得到的矩阵的单应分解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21569353/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com