我必须使用点云库访问点云中某个点的颜色属性。任何帮助表示赞赏。
目前我用它来显示云。但它只显示红蓝绿色,而不是对象的实际颜色。
boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer (
new pcl::visualization::PCLVisualizer ("3D Viewer")
);
viewer->setBackgroundColor (0, 0, 0);
pcl::visualization::PointCloudColorHandlerRGBField<pcl::PointXYZRGB> rgb(cloud);
viewer->addPointCloud<pcl::PointXYZRGB> (cloud, rgb, "sample cloud");
viewer->setPointCloudRenderingProperties (
pcl::visualization::PCL_VISUALIZER_POINT_SIZE
, 3
, "sample cloud"
);
viewer->addCoordinateSystem (1.0);
viewer->initCameraParameters ();
答案 0 :(得分:0)
您的代码在我看来没问题,您如何设置云的颜色?
pcl::PointCloud<pcl::PointXYZRGB>::Ptr point_cloud_ptr (new pcl::PointCloud<pcl::PointXYZRGB>);
pcl::PointXYZRGB point;
// ...
uint32_t rgb = (static_cast<uint32_t>(255) << 16 |
static_cast<uint32_t>(15) << 8 |
static_cast<uint32_t>(15));
point.rgb = *reinterpret_cast<float*>(&rgb);
point_cloud_ptr->points.push_back(point);