我目前正在使用FLANN实现LSH。
matches = flann.knnMatch(des1,k=2)des1是我的查询图像的二进制描述符& flann是侧基匹配器(使用FLANN algo)变量,它拥有图像数据库的所有二进制描述符。
如何输出knnMatch的结果?
发布于 2015-04-14 09:12:32
您可能想看看这个链接,这是一个演示如何使用FlannBasedMatcher的opencv示例。有很多话题都在谈论这个问题,你应该在问之前先找个更好的。
编辑
我假设您有一个要与des1匹配的FLANN索引,所以有一个函数,如果有匹配或不匹配的话,它会返回。
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() (文档)来获得更好、更准确的结果,这取决于您在这里的目标是什么。
希望能帮上忙。
https://stackoverflow.com/questions/28729129
复制相似问题