或者甚至可以使用 flann ?我不是最有经验的编码员,我也可能只是忽略了一些非常基本的东西(C++,OpenCV 2.4.3。)
问题 :
我有两个点云,想计算置换贴图。我正在尝试使用 flann .lib 从第二个云的点获取到第一个云中的点的最近邻居,并使用它们和距离来计算位移向量。
到目前为止,我得到的是:
int nn = 1;
cv::Mat MyIndex(data1.size(),3,CV_64FC1);
cv::Mat MyQuery(data2.size(),3,CV_64FC1);
cv::Mat indices(data2.size(),1,CV_32SC1);
cv::Mat distances(data2.size(),3,CV_64FC1);
cv::flann::Index_<double> NN_Index(MyIndex, cvflann::KDTreeIndexParams(4));
NN_Index.knnsearch(MyQuery,indices,distances,nn,cvflann::SearchParams(32));
据我所知,它有效,我得到了距离,我得到了查询点,我得到了索引。但是如何从索引中获取与我的查询点匹配的实际点?
我查看了 flann.hpp,但实际上找不到任何提示。我把 MyIndex、NN_Index 和索引弄乱了一些,但没有得到任何有用的结果。