我正在尝试重写here描述的代码。使用python API for Opencv。
代码的第3步包含以下几行:
FlannBasedMatcher matcher;
std::vector< DMatch > matches;
matcher.match( descriptors_object, descriptors_scene, matches );我在the OpenCV reference中一遍又一遍地查找,但没有发现任何与python中的FlannBasedMatcher或其他可以完成这项工作的对象相关的内容。
有什么想法吗?
注意:我正在使用OpenCV 2.3.1和Python2.6
发布于 2011-11-29 21:26:14
在python2文件夹下的OpenCV 2.3.1提供的示例中,我发现了一个不依赖于FlanBasedMatcher对象的基于flann的match函数的实现。
代码如下:
FLANN_INDEX_KDTREE = 1 # bug: flann enums are missing
flann_params = dict(algorithm = FLANN_INDEX_KDTREE,
trees = 4)
def match_flann(desc1, desc2, r_threshold = 0.6):
flann = cv2.flann_Index(desc2, flann_params)
idx2, dist = flann.knnSearch(desc1, 2, params = {}) # bug: need to provide empty dict
mask = dist[:,0] / dist[:,1] < r_threshold
idx1 = np.arange(len(desc1))
pairs = np.int32( zip(idx1, idx2[:,0]) )
return pairs[mask]发布于 2011-11-29 06:14:27
OpenCV主干中已经提供了Python型FlannBasedMatcher,但如果我没记错的话,它是在2.3.1版本之后添加的。
下面是使用FlannBasedMatcher的OpenCV示例:http://code.opencv.org/projects/opencv/repository/revisions/master/entry/samples/python2/feature_homography.py
发布于 2019-09-10 14:06:44
我不能在上面的帖子上发布死链接,因为缺乏声誉。所以,我把它贴在这里。
https://stackoverflow.com/questions/8301962
复制相似问题