【问题标题】:OpenCV RHO homography method doesn't work with perspectiveTransformOpenCV RHO 单应性方法不适用于 perspectiveTransform
【发布时间】:2016-04-23 14:36:45
【问题描述】:

我尝试将新的 RHO 单应性算法与 perspectiveTransform 结合使用,但 RHO 计算的单应性矩阵似乎大小错误,因此与该方法不兼容。

见下面的代码:

H = findHomography(obj_points, scn_points, RHO, 1.0);
perspectiveTransform(obj_corners, scene_corners, H);

以下断言失败:

error: (-215) scn + 1 == m.cols in function perspectiveTransform

有什么线索吗?它与 RANSAC 完美配合。

【问题讨论】:

  • 我不知道 RHO 方法。但这可能是阈值问题..尝试将 1.0 更改为最灵活的可能值(我的意思是接受最愚蠢的单应性的阈值)
  • 好吧,在他们的示例中,他们使用 1.0 作为阈值:cvrobot.net/wp-content/uploads/2015/06/…。我也尝试过其他阈值,但没有运气。
  • Unfortnatnyl 我现在没有 OpenCV 3.1 可以试用。但是,您的问题似乎很奇怪,而您可以放置​​ RANSAC 并且一切正常!我想到的唯一一件事是,该算法在某些极端情况下可能无法找到单应性(这不合逻辑,因为任何 4 个非共线点都可以产生单应性),但我想不出任何其他可能性.. 祝你好运!
  • 顺便说一句,你有多少双?
  • 大约 50 个匹配项。我还在计算单应性之前检查了 good_matches >= 4。

标签: c++ computer-vision opencv3.0 perspective homography


【解决方案1】:

我找到了解决办法:

使用 RHO,我必须检查单应矩阵以确保它不为空。给findHomography 4个或更多点不足以用这种方法得到一个单应矩阵。

尽管给它大约 50 个匹配项来计算,但它只检索到 40-50% 的非空矩阵。

【讨论】:

  • (其中一位)RHO 的作者在这里发言。我很想看到你的测试用例,比如说,一个 Pastebin!您的许多点是否在同一列或同一行上?另外,您是否事先对输入点进行了任何形式的归一化?我相信当以这种方式预处理点时,我们的算法实际上会更糟糕。为什么我还不清楚;我们针对纯速度进行了优化(基于廉价但数值稳定性较差的算法编写我们自己的数值求解器)并认识到我们可能会失去准确性。
  • @IwillnotexistIdonotexist 当然。这里有我的检测方法的代码:pastebin.com/mK2jZ83Q
猜你喜欢
  • 2020-01-25
  • 1970-01-01
  • 1970-01-01
  • 2019-07-30
  • 2011-11-12
  • 1970-01-01
  • 2018-02-13
  • 1970-01-01
  • 2017-05-25
相关资源
最近更新 更多