我正在OpenCV
3.6中使用python
进行特征提取。为了检测和描述关键点,我使用ORB
检测器,该检测器提供了二进制描述符(ORB中的B代表作为二进制描述符的Brief)。
orb = cv2.ORB_create(nfeatures=1500)
leftKP, leftDescrps = orb.detectAndCompute(leftImg, None)
rightKP, rightDescrps = orb.detectAndCompute(righImg, None)
我想使用基于FLANN
的匹配器并进行自定义,因此它将使用汉明/曼哈顿距离进行索引和搜索。 OpenCV
包装了Lowe和Muja的FLANN,但是它没有提供库的完整接口,如其documentation
该文档旨在使用另一个名为pyflann
的python包装器,该包装器确实提供了我需要的定制。但是,使用pyflann
要求将类型从OpenCV
的对象强制转换为numpy
个对象。我想避免的事情很重要,因为代码的性能很重要,而且我担心类型转换会浪费这种方式。
是否可以自定义OpenCV
FlannBasedMatcher
以使用曼哈顿距离或汉明距离?