算法参数在OpenCV的FlannBasedMatcher构造函数中取什么值?



在Python中,OpenCV的FlannBasedMatcher构造函数采用了参数字典,其中第一个是algorithm。Python教程表明,可以通过传递不同命名的变量(例如FLANN_INDEX_KDTREEFLANN_INDEX_LSH,但是变量名称当然不能将任何内容传达给构造函数。人们可能会认为这些名称应该以字符串的形式传递,但是在随后的示例中,FLANN_INDEX_KDTREE被初始化为0,因此完全不清楚algorithm参数如何工作。

OpenCV实际上没有任何Python文档。在C 中,构造函数不使用通用字典,而是实例化IndexClass的对象,其中IndexClass的每个子类都对应于其他算法。

algorithm采用一个整数,教程中缺少的是具有不同值的FLANN_INDEX_KDTREEFLANN_INDEX_LSH的初始化。(上层情况应该是一个暗示,这些暗示是指固定整数值的描述性标签。)

C 源代码具有这样的初始化列表,从中看来LSH算法对应于值6。它也将FLANN_INDEX_KDTREE始于CC_13为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

编辑:我提出了一个拉动请求,修复了现在已接受的两个问题。

相关内容

  • 没有找到相关文章

最新更新