【问题标题】:How can I retrieve the points of the homography computed findHomography and RANSAC?如何检索单应性计算的 findHomography 和 RANSAC 的点?
【发布时间】:2015-10-13 04:14:08
【问题描述】:

我是 OpenCV 的新手。我注意到这条线

Mat H = findHomography( obj, scene, CV_RANSAC );

帮助使用 RANSAC 查找单应性 H

但是,我需要 RANSAC 之后“纯化”匹配点的位置,但我根本找不到可以使用的功能。我需要一个使用 RANSAC 并在 RANSAC 之后返回匹配点位置的函数。

【问题讨论】:

  • 不清楚你在问什么。尝试发布代码 sn-p
  • 对不起。我的意思是,在 BFMatcher 或 FlannBasedMatcher 之后使用 RANSAC 实际上进一步“净化”匹配点,而 findHomography 函数使用“净化”匹配点来计算 H。但是,我需要“净化”匹配点的位置,我只是简单地找不到我可以使用的功能。我需要一个使用 RANSAC 并在 RANSAC 之后返回匹配点位置的函数。

标签: c++ opencv ransac


【解决方案1】:

findHomography 可以选择性地提供内点和异常值的掩码(内点就是你所说的纯化匹配)。

C++: Mat findHomography(InputArray srcPoints, InputArray dstPoints, int method=0, double ransacReprojThreshold=3, OutputArray mask=noArray() )

Python: cv2.findHomography(srcPoints, dstPoints[, method[, ransacReprojThreshold[, mask]]]) → retval, mask

在进行匹配时,您只能使用内点(即对应的 mask 值等于 1 的点)。

【讨论】:

  • 该函数是否有可能定期生成包含错误的输入和异常值掩码?即,有些 pts 被视为 inliers 而他们不应该
【解决方案2】:

当你从单应性得到真正的 H33 结果时,为什么不将匹配点从掩码转换为帧,然后你会得到许多“纯化”的匹配点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-23
    • 2020-06-01
    • 1970-01-01
    • 2012-07-11
    • 2018-04-09
    • 2012-08-16
    • 2012-06-13
    • 1970-01-01
    相关资源
    最近更新 更多