Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中opencv的knn搜索_Python_Opencv_Image Processing_Nearest Neighbor_Kdtree - Fatal编程技术网

python中opencv的knn搜索

python中opencv的knn搜索,python,opencv,image-processing,nearest-neighbor,kdtree,Python,Opencv,Image Processing,Nearest Neighbor,Kdtree,我有c++中opencv的示例代码: flann::KDTreeIndexParams indexParams; flann::Index kdtree(Mat(cloud2d).reshape(1), indexParams); vector<float> query; query.push_back(370); query.push_back(464); vector<int> indices; vector<float> dists; kdtree.

我有c++中opencv的示例代码:

flann::KDTreeIndexParams indexParams;
flann::Index kdtree(Mat(cloud2d).reshape(1), indexParams);
vector<float> query;
query.push_back(370); 
query.push_back(464); 
vector<int> indices;
vector<float> dists;
kdtree.knnSearch(query, indices, dists, 3);
flann::KDTreeIndexParams indexParams;
flann::索引kdtree(Mat(cloud2d)。重塑(1),索引参数);
向量查询;
查询。推回(370);
查询。推回(464);
向量指数;
向量距离;
knnSearch(查询、索引、距离,3);

如何在python中实现同样的功能?尝试,但是不能用CV2创建KDDTURE或KDTreeIndexParams。

< P> FLANN是ANN的一个库,它是用C++编写的,并且独立于OpenCV。它为Python提供了绑定

例如:


这个例子应该足以让您开始学习。

@gsamaras请将此作为答案发布,我会接受。
from pyflann import *
import numpy as np

dataset = np.array(
    [[1., 1, 1, 2, 3],
     [10, 10, 10, 3, 2],
     [100, 100, 2, 30, 1]
     ])
testset = np.array(
    [[1., 1, 1, 1, 1],
     [90, 90, 10, 10, 1]
     ])
flann = FLANN()
result, dists = flann.nn(
    dataset, testset, 2, algorithm="kmeans", branching=32, iterations=7, checks=16)
print result
print dists

dataset = np.random.rand(10000, 128)
testset = np.random.rand(1000, 128)
flann = FLANN()
result, dists = flann.nn(
    dataset, testset, 5, algorithm="kmeans", branching=32, iterations=7, checks=16)
print result
print dists