OpenCV python的API:FlannBasedMatcher

OpenCV python#39;s API: FlannBasedMatcher(OpenCV python的API:FlannBasedMatcher)
本文介绍了OpenCV python的API:FlannBasedMatcher的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我正在尝试重写此处中描述的代码.使用 Opencv 的 python API.

I am trying to rewrite the code described here. using the python API for Opencv.

代码的第 3 步有这几行:

The step 3 of the code has this lines:

 FlannBasedMatcher matcher;
 std::vector< DMatch > matches;
 matcher.match( descriptors_object, descriptors_scene, matches );

我在 OpenCV 参考 中反复查看,但没有发现与 python 中的 FlannBasedMatcher 或其他对象相关的内容哪个可以完成这项工作.

I have looked over and over in the OpenCV reference but found nothing related to a FlannBasedMatcher in python or some other object which can do the work.

有什么想法吗?

注意:我使用 OpenCV 2.3.1 和 Python 2.6

NOTE: I am usign OpenCV 2.3.1 and Python 2.6

推荐答案

查看python2文件夹下OpenCV 2.3.1提供的示例,我发现了一个基于flann的匹配函数的实现,它不依赖于FlanBasedMatcher对象.

Looking in the examples provided by OpenCV 2.3.1 under the python2 folder, I found an implementation of a flann based match function which doesn't rely on the FlanBasedMatcher object.

代码如下:

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]

这篇关于OpenCV python的API:FlannBasedMatcher的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

cv2.approxPolyDP() , cv2.arcLength() How these works(cv2.approxPolyDP() , cv2.arcLength() 这些是如何工作的)
How To Detect Red Color In OpenCV Python?(如何在 OpenCV Python 中检测红色?)
Distance between 2 pixels(2个像素之间的距离)
How to get length of each side of a shape in an image?(如何获取图像中形状每一边的长度?)
How to upload dataset in google colaboratory?(如何在谷歌合作实验室上传数据集?)
Fast and Robust Image Stitching Algorithm for many images in Python?(Python中许多图像的快速而强大的图像拼接算法?)