1
還是flann可以嗎?我不是最有經驗的編碼器,我也可能只是被忽視的東西很基本的如何訪問由cv :: flann knnsearch發現的最近鄰居?
問題(C++,OpenCV的2.4.3。):
我有兩個點雲,並要計算位移圖。我嘗試使用flann .lib從第二個雲點獲取第一個雲中點的最近鄰點,並使用它們和距離來計算位移矢量(s)。
我走到這一步,是這樣的:
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和索引稍微弄亂了一些,但沒有得到任何有用的結果。
因此,它是'COUT << MyQuery.row(ⅰ)<< 「匹配」 << MyIndex.row(indices.at(I,0)<< ENDL;' ...我想我的最初思路是複雜的,謝謝 –
user2478978