7

Is there any function in PCL library to save pcl::PointCloud<pcl::PointXYZRGB> point cloud in format XYZRGB that can be opened with Meshlab?

Seems pcl::io::savePCDFileASCII (filename, cloud); stores RGB values in some specific way.

mrgloom
  • 20,061
  • 36
  • 171
  • 301

2 Answers2

9

For me it works, if I store it as PLY file in binary format. It seems as if Meshlab is having some troubles with ASCII files occasionally. Here is what works for me.

pcl::PointCloud<pcl::PointXYZRGB>::Ptr sceneCloud(new pcl::PointCloud<pcl::PointXYZRGB>);
//Fill cloud somehow...

std::string writePath = "your/path";
pcl::io::savePLYFileBinary(writePath, *sceneCloudPtr);
Tukk
  • 133
  • 1
  • 10
1

You can convert to .ply, .obj or any other supported format. Have a look to the demo pcd2ply in the PCL, or just use pcl::PLYWriter setting up the parameters depending on your needs:

 pcl::PLYWriter writer;
 writer.write (filename, cloud, Eigen::Vector4f::Zero (),
               Eigen::Quaternionf::Identity (), binary, use_camera);
Finfa811
  • 618
  • 1
  • 8
  • 28