PointCloudLibrary (PCL) — Octree — получение индексов всех точек в узле *ветви*

Я новичок в PCL и хочу получить все индексы из узла ветки в pcl::octree. Таким образом, корневой узел, например, должен предоставить каждому отдельному индексу и каждому узлу подветви индексы точек всех конечных узлов в этом узле ветви. Каков наилучший способ добиться этого?

я использую

pcl::octree::OctreePointCloudSearch<pcl::PointXYZ, pcl::octree::OctreeContainerPointIndices, pcl::octree::OctreeContainerPointIndices>

и надеялся, что с третьим параметром шаблона для BranchContainerT также установлено значение pcl::octree::OctreeContainerPointIndices, чтобы иметь возможность вызывать что-то вроде

std::vector<int> indices;
auto it = m_octree->breadth_begin();
it.getBranchContainer().getPointIndices(indices)

Однако вектор индексов пуст. Конечно, я могу вручную перебрать все узлы, получить листы и вставить индексы, но, может быть, я что-то здесь упускаю?


person Simon    schedule 06.11.2017    source источник
comment
Хм, никто не знаком с PCL?   -  person Simon    schedule 07.11.2017


Ответы (1)


Хорошо, чего мне не хватало, так это того, что параметр шаблона для BranchContainerT, установленный на pcl::octree::OctreeContainerPointIndices, только предоставляет вам возможность хранить индексы в контейнере такого типа. Однако добавление этих индексов нужно делать вручную.

Учитывая, что это просто вопрос проверки каждого узла на его тип, сбора индексов с листьев и добавления их к узлам ветвления.

person Simon    schedule 08.11.2017