opencv下kd樹使用筆記
阿新 • • 發佈:2019-01-08
centos 7,opencv 3.0
程式碼:
// 1)建立查詢樹 :
Point2f p1(2,3), p2(5,4),p3(9, 6), p4(4,7), p5(8,1),p6(7, 2);
vector<cv::Point2f> source;
source.push_back(p1);
source.push_back(p2);
source.push_back(p3);
source.push_back(p4);
source.push_back(p5);
source.push_back(p6);
source.push_back(Point2f(1 ,1.5));
flann::KDTreeIndexParams indexParams(2);
flann::Index kdtree(cv::Mat(source).reshape(1), indexParams);
// 2) 查詢 :
vector<float> query;
Point2f pt(0.1,1);
query.push_back(pt.x);
query.push_back(pt.y);
int k = 1; //number of nearest neighbors
vector<int> indices(k);//找到點的索引
vector<float> dists(k);
flann::SearchParams params(128);
kdtree.knnSearch(query, indices, dists, k,params);
cout<<indices[0]<<endl;
cout<<indices[1]<<endl;
cout<<indices[2]<<endl;
cout<<indices[3]<<endl;