我如何获得指向 pcl::PointCloud 中某个点的指针

How can I obtain a pointer to a point in a pcl::PointCloud

我有一个 pcl::PointCloud<pcl::PointXYZ>,我想在云中的各个点上构建一个图表。我不想为云中的各个点复制内存,所以更愿意存储指向图中这些点的指针。如何获得指向单个点的指针?我可以只获取迭代器返回的 PointXYZ 的地址还是实际点的副本?

像这样的迭代器不太可能复制您正在迭代的数据,并查看 http://docs.pointclouds.org/trunk/classpcl_1_1_cloud_iterator.html,迭代器是通过引用该点构造的云,并且 operator*() 返回一个 PointT&,所以看起来你可以只存储一个指向这个数据的指针。

或者,迭代器实现似乎提供了获取点索引的方法,您可以改为存储它。

从迭代器获取指针,

PointT* pointer_to_point = &(*iter);

如果您正在将 adding/removing 点更改为点云,您可能还需要检查指针或指标是否仍然有效。我怀疑他们会。