如何从点云中获取颜色信息并显示出来?

how to obtain color information from a point cloud and display it?

我必须使用点云库访问点云中某个点的颜色 属性。感谢任何帮助。

目前我正在使用它来显示 cloud.But 它只显示红色蓝色绿色而不是对象的实际颜色。

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 ();

你的代码我觉得没问题,请问云朵的颜色是怎么设置的?

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);