0

我是计算机视觉的新手。我正在使用这个算法http://docs.opencv.org/doc/tutorials/features2d/feature_flann_matcher/feature_flann_matcher.html由 Open CV 提出,以便在对拍摄图像的相机进行旋转平移后计算同一环境的 2 个场景(城市的鸟瞰图)之间的一些匹配点。相机和环境都是模拟的(因此没有亮度变化,没有失真等)显然帧速率足够高,可以使图像大部分重叠。之后,我必须使用这一点来计算描述相机所做运动的仿射变换矩阵(拍摄图像的高度不会随时间变化)。因此,对于每几张图像,我需要至少 2 个匹配点。我的问题是匹配点通常少于 3 个。是否存在一些更适合我的目的的稳健方法?谢谢

4

1 回答 1

0

我相信您给出的示例中实现的过滤非常幼稚。假设你得到了一个非常高的匹配(关于描述符之间的距离),那么min_dist它非常小并且可能会过滤掉好的匹配。换句话说,得分最高的匹配不一定是几何上最好的(两个特征可能看起来非常相似,但不是真实世界的对应)......

你可以尝试做的是:

  • 删除过滤实现;保留所有比赛
  • 使用计算单应矩阵findHomography()
    • findHomography()允许您使用 amask来跟踪内点
  • 仅绘制标记为 inliers 的匹配项mask

这应该是一个更好的验证。

于 2013-04-19T07:43:27.413 回答