PointCloudLibrary (PCL) - Octree - dapatkan indeks semua titik dalam node *cabang*

Saya baru mengenal PCL dan saya ingin mendapatkan semua indeks dari node cabang di pcl::octree. Jadi, simpul akar misalnya harus memberikan setiap indeks dan setiap simpul sub-cabang indeks dari titik-titik semua simpul daun dalam simpul cabang ini. Apa cara terbaik untuk mencapai hal ini?

Saya menggunakan a

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

dan berharap dengan parameter templat ke-3 untuk BranchContainerT juga disetel ke pcl::octree::OctreeContainerPointIndices dapat memanggil sesuatu seperti

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

Namun, vektor indeksnya kosong. Tentu saja, saya dapat mengulangi semua node secara manual, mendapatkan daun dan memasukkan indeks, tapi mungkin saya melewatkan sesuatu di sini ..?


person Simon    schedule 06.11.2017    source sumber
comment
Hmm, ada yang familiar dengan PCL?   -  person Simon    schedule 07.11.2017


Jawaban (1)


Oke, yang saya lewatkan adalah parameter template untuk BranchContainerT yang disetel ke pcl::octree::OctreeContainerPointIndices hanya memberi Anda opsi untuk menyimpan indeks dalam wadah semacam ini. Namun menambahkan indeks ini adalah sesuatu yang harus Anda lakukan secara manual.

Mengingat ini hanyalah masalah memeriksa setiap node untuk jenisnya dan mengumpulkan indeks dari daun dan menambahkannya ke node cabang.

person Simon    schedule 08.11.2017