- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我用过这个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 一书中得到了这个分解代码的完整解释。
我的问题是:
findHomography()
中获得的单应性作为此分解模块的输入并期望得到正确的输出?还是我遗漏了什么?最后,我在移动平台上编码,所以我也很关心性能。如果您能指出正确的方向,我会很高兴。
提前感谢您的时间和答复。
最佳答案
张的校准程序会产生一个旋转矩阵。这表示为 3 个(欧拉)角,而不是一个。或者,等效地(通过 Rodriguez 的公式),作为一个单位 vector 和围绕该 vector 的旋转角度 - 即再次为三个数字。
除非您的相机和目标相对于彼此非常仔细地定位,否则没有理由期望只有一个非零旋转角度。
关于c++ - findHomography()中得到的矩阵的单应分解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21569353/
当使用 findHomography 时使用 OpenCV Features2D + Homography Documentation ,它调用 CV_RANSAC 作为它的第三个参数: Mat H
我刚刚安装了 OpenCV 3.2.0,我可以在 this image 中找到很多/大部分角落来自 this question通过使用对比度然后使用 cv2.findChessboardCorners
我是一名优秀的程序员,十分优秀!