Или это возможно даже с фланном? Im не самый опытный верстальщик, я также мог бы быть просто вид что-то действительно основногоКак получить доступ к ближайшим соседям, найденным cv :: flann knnsearch?
Проблемы (C++, OpenCV 2.4.3.):
У меня есть два pointclouds и хотим, чтобы вычислить карту смещения. Я пытаюсь использовать 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 и индексы, но не получил никаких полезных результатов.
Так что 'соиЬ << MyQuery.row (я) << "согласованы" << MyIndex.row (indices.at (г, 0) << End L,; ' ... Я думаю, что мой первоначальный ход мысли был сложным. –
user2478978