在 python 中输出 FLANN 结果

Posted

技术标签:

【中文标题】在 python 中输出 FLANN 结果【英文标题】:Output FLANN results in python 【发布时间】:2015-02-25 20:39:59 【问题描述】:

我目前正在使用 FLANN 实现 LSH。

matches = flann.knnMatch(des1,k=2)

des1 是我的查询图像的二进制描述符,而 flann 是 flanbasedmatcher(使用 FLANN LSH 算法)变量,它具有图像数据库的所有二进制描述符。

如何输出knnMatch的结果?

【问题讨论】:

你确定语法吗?根据他们的documentation,它需要 2 个描述符来检查匹配。 PS:您也可以在链接中找到如何显示结果。 【参考方案1】:

你可能想看看这个link 这是一个 opencv 示例,展示了如何使用 FlannBasedMatcher。 有很多话题在谈论这个,你应该在提问之前更好地搜索。

编辑

我假设你有一个 FLANN 索引来匹配des1,所以有一个函数会返回是否匹配。

MIN_MATCH_COUNT = 10
def flann_match(des1):
    matches = flann.knnMatch(des1, k=2)
    # Check the distance to keep only the good matches.
    matches = [m[0] for m in matches if len(m) == 2 and m[0].distance < m[1].distance * 0.75]
    if len(matches < MIN_MATCH_COUNT)
        return False
    return True

这个实现很简单,你需要使用cv2.findHomography() (documentation) 来获得更好更准确的结果,这取决于你的目标是什么。

希望对你有帮助。

【讨论】:

虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效 你完全正确,但我认为这里粘贴的代码太多,没有任何意义。此链接来自 opencv 文档,我认为它不会变得不可用。以防万一,你可以在 opencv 2.4 中找到这个文件:&lt;path_to_opencv_folder&gt;/samples/python2/plane_tracker.py 我明白.. 好吧,我刚刚编辑了我的答案,希望对您有所帮助。 链接失效

以上是关于在 python 中输出 FLANN 结果的主要内容,如果未能解决你的问题,请参考以下文章

Python如何将输出结果存入TXT文件

如何使用 k-means (Flann with python) 对文档进行聚类?

使用 Python 在运行时将 selenium 结果/输出保存在文本文件中

python pandas怎么输出结果

Python统计1到100之和,输出结果?

opencv动态背景下运动目标检测 FAST+SURF+FLANN配准差分 17/12/13更新图片