如何从点云获取颜色信息并显示它?

时间:2015-02-11 18:14:41

标签: c++ point-cloud-library

我必须使用点云库访问点云中某个点的颜色属性。任何帮助表示赞赏。

目前我用它来显示云。但它只显示红蓝绿色,而不是对象的实际颜色。

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

1 个答案:

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