1. 程式人生 > >opencv下kd樹使用筆記

opencv下kd樹使用筆記

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;