【发布时间】:2017-04-04 20:41:45
【问题描述】:
我想为以下类型的点云数据集中的所有点分配一个 RGB 值:
pcl::PointCloud<pcl::PointXYZRGB>
我猜您可以遍历这些点并更改每个值?使用这样的东西:
uint32_t rgb = (static_cast<uint32_t>(r) << 16 |
static_cast<uint32_t>(g) << 8 | static_cast<uint32_t>(b));
point.rgb = *reinterpret_cast<float*>(&rgb);
但是,考虑到我想为所有点赋予相同的值,是否有更好的方法?
RGB 值需要与每个点或至少与点的集合相关联,以便可以将多个点云组合在一个输出中;每个都有自己独特的颜色。
由于有多个点云,我无法通过PCLVisualizer 设置颜色:
pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ>
我的一个想法是与点云建立高级关联:
std::tie(rgb, pointcloud) = std::make_tuple(
uint32_t, pcl::PointCloud<pcl::PointXYZ>);
那么也许我可以多次使用PointCloudColorHandlerCustom 在同一个PCLVisualizer 实例上显示不同颜色的点云?不确定这是否可能。
非常感谢任何帮助!
【问题讨论】:
标签: c++ c++11 point-cloud-library point-clouds