如何从点云中获取颜色信息并显示出来?
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);
我必须使用点云库访问点云中某个点的颜色 属性。感谢任何帮助。
目前我正在使用它来显示 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);