Python 算法参数在OpenCV';什么是FlannBasedMatcher构造函数?

Python 算法参数在OpenCV';什么是FlannBasedMatcher构造函数?,python,opencv,flann,Python,Opencv,Flann,在python中,OpenCV的FlannBasedMatcher构造函数使用参数字典,第一个是算法。建议通过传递不同命名的变量,例如FLANN_INDEX_KDTREE和FLANN_INDEX_LSH,可以指定算法的不同值,但变量名当然不能向构造函数传递任何信息。有人可能会认为这些名称应该作为字符串传递,但在下面的示例中,FLANN_INDEX_KDTREE被初始化为0,因此完全不清楚算法参数是如何工作的 OpenCV实际上没有任何python文档,构造函数不采用泛型字典,而是采用实例化Ind

在python中,OpenCV的
FlannBasedMatcher
构造函数使用参数字典,第一个是
算法
。建议通过传递不同命名的变量,例如
FLANN_INDEX_KDTREE
FLANN_INDEX_LSH
,可以指定
算法的不同值,但变量名当然不能向构造函数传递任何信息。有人可能会认为这些名称应该作为字符串传递,但在下面的示例中,
FLANN_INDEX_KDTREE
被初始化为0,因此完全不清楚
算法
参数是如何工作的


OpenCV实际上没有任何python文档,构造函数不采用泛型字典,而是采用实例化
IndexClass
的对象,其中
IndexClass
的每个子类对应一个不同的算法。

算法
采用一个整数,本教程缺少的是使用不同值初始化
FLANN_INDEX_KDTREE
FLANN_INDEX_LSH
。(大写字母应该是一个提示,表示它们是固定整数值的描述性标签。)

具有这样一个初始化列表,从中可以看出LSH算法对应于值6。它还将
FLANN_INDEX_KDTREE
初始化为1,这意味着python教程(0)是错误的,或者源代码在不同的位置使用了冲突的定义(我错过了),这将是不幸的

以下是源代码中的所有值:

FLANN_INDEX_LINEAR = 0
FLANN_INDEX_KDTREE = 1
FLANN_INDEX_KMEANS = 2
FLANN_INDEX_COMPOSITE = 3
FLANN_INDEX_KDTREE_SINGLE = 4
FLANN_INDEX_HIERARCHICAL = 5
FLANN_INDEX_LSH = 6
FLANN_INDEX_SAVED = 254
FLANN_INDEX_AUTOTUNED = 255
编辑:我提交了修复这两个问题的文件,现已被接受