将 pcl::PointCloud<pcl::PointXYZRGB> 保存为与 Meshlab 兼容的格式

7
有没有PCL库中的函数可以将 pcl::PointCloud<pcl::PointXYZRGB> 点云以 XYZRGB 格式保存并能在Meshlab中打开?
似乎 pcl::io::savePCDFileASCII (filename, cloud); 将RGB值以某种特定方式存储。
2个回答

9

对于我来说,如果将它存储为二进制格式的 PLY 文件,则可以使用。似乎 Meshlab 偶尔会出现一些 ASCII 文件的问题。下面是适用于我的方法。

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

std::string writePath = "your/path";
pcl::io::savePLYFileBinary(writePath, *sceneCloudPtr);

2
对我有效。savePLYFileBinarypcl/io/ply_io.h 中定义,需要包含它。 - Gabriel Devillers
如果您能将其标记为答案,那就太好了 ;) - Tukk

1
你可以转换为 .ply、.obj 或任何其他支持的格式。可以查看 PCL 中的演示 pcd2ply,或者只需使用 pcl::PLYWriter 根据你的需求设置参数:
 pcl::PLYWriter writer;
 writer.write (filename, cloud, Eigen::Vector4f::Zero (),
               Eigen::Quaternionf::Identity (), binary, use_camera);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接