问题描述
我有一个来自 RGBD 相机的 PointCloud2,我想将其转换为 PCL 以保存颜色。我正在考虑使用 pcl :: PointXYZRGB 但我遇到了麻烦。下一个是我的代码,它为我保存了黑白点云。你能帮我吗?
pcl::PCLPointCloud2* cloud_tmp = new pcl::PCLPointCloud2;
pcl::PCLPointCloud2ConstPtr cloudPtr_tmp(cloud_tmp);
pcl_conversions::toPCL(cloud_,*cloud_tmp);
pcl::PCLPointCloud2* cloud_filtered = new pcl::PCLPointCloud2;
pcl::PCLPointCloud2Ptr cloudFilteredPtr (cloud_filtered);
pcl::VoxelGrid<pcl::PCLPointCloud2> sor;
sor.setInputCloud (cloudPtr_tmp);
sor.setLeafSize (0.01,0.01,0.01);
sor.filter (*cloudFilteredPtr);
pcl::PointCloud<PointType> *xyz_cloud_tmp = new pcl::PointCloud<PointType>;
pcl::PointCloud<PointType>::Ptr xyzCloudPtr_tmp (xyz_cloud_tmp);
pcl::fromPCLPointCloud2(*cloudFilteredPtr,*xyzCloudPtr_tmp);
pcl::PointCloud<PointType> *xyz_cloud_base_link = new pcl::PointCloud<PointType>;
pcl::PointCloud<PointType>::Ptr xyzCloudPtr_base_link (xyz_cloud_base_link);
pcl::transformPointCloud (*xyzCloudPtr_tmp,*xyzCloudPtr_base_link,T_base2cam_);
std::string pcd_file = pcd_start_folder_ + "pcd.pcd";
pcl::io::savePCDFileASCII (pcd_file,*xyzCloudPtr_base_link);
*boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer (new
pcl::visualization::PCLVisualizer ("3D Viewer"));
viewer->setBackgroundColor (0,0);
viewer->addPointCloud<pcl::PointXYZ> (xyzCloudPtr_base_link);
viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE,1);
viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_COLOR,1,1);
viewer->addCoordinateSystem (1.0);
while (!viewer->wasStopped ())
{
viewer->spinOnce (100);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)