我目前正在 python 中测试 Flann 特征与 OpenCV 的匹配,并且不完全理解某些参数的实际作用。这是从 OpenCV 文档复制的一段代码。完整的代码可以在这里找到。
\n# FLANN parameters\nFLANN_INDEX_KDTREE = 1\nindex_params = dict(algorithm = FLANN_INDEX_KDTREE, trees = 5)\nsearch_params = dict(checks=50) # or pass empty dictionary\n\nflann = cv2.FlannBasedMatcher(index_params,search_params)\n\nmatches = flann.knnMatch(des1,des2,k=2)\nRun Code Online (Sandbox Code Playgroud)\n我很好奇输入algorithm、trees和 的checks含义是什么。OpenCV 文档中找到的默认值通常被我在这里读到的其他代码所采用,因此我想知道是否值得操作和测试不同的值,或者是否建议坚持使用这些值?
各种索引参数\算法之间的主要区别是什么?\n为什么FLANN_INDEX_KDTREE最常用?
我认为这trees = 5意味着制作了 5 个 KDTree。改变这个值在实践中意味着什么?
OpenCV 文档提到,增加检查值将提供\n更好的精度,但会减慢代码速度。它说: \xe2\x80\x9c如果要\n更改该值,请传递search_params = dict(checks=100)。\xe2\x80\x9d 是否值得\n探索 50 或 100 以外的值进行检查?
最后,除了 …