[请您在将问题标记为重复或否决之前阅读问题详细信息。我已经彻底搜索,找不到解决方案,因此在这里发布问题。]
我正在尝试将一张图像与多张图像进行比较,并获取所有匹配图像的列表。我不想在图像之间绘制关键点。
我的解决方案基于以下源代码:
https://github.com/Itseez/opencv/blob/master/samples/cpp/matching_to_many_images.cpp
以上源码将一张图片与多张图片进行匹配,得到最佳匹配图片。
我修改了上面的示例并生成:
vector<vector<DMatch>> matches;
vector<vector<DMatch>> good_matches;
现在我的问题是如何应用最近邻搜索比率来获得多个图像的良好匹配?
编辑1:
我的实现如下:
对于数据集中的每个图像,计算 SURF 描述符。
将所有描述符组合成一个大矩阵。
从级联矩阵构建 FLANN 索引。
计算查询图像的描述符。
在 FLANN 索引上运行 KNN 搜索以找到前 20 个或更少的最佳匹配图像。K 设置为 20。
过滤掉上一步计算的所有不充分匹配。(如何??)
我已成功完成第 1 到第 5 步。我在第 6 步中遇到问题,其中我无法删除错误匹配。