1. Convierta el archivo pcd en pcl a archivo ply
int PCDtoPLYconvertor(string & pcdFileName = "./pcdFileName.pcd" ,string& plyFileName = "./polyFileName.ply")
{
pcl::PCLPointCloud2 cloud;
if (loadPCDFile(pcdFileName , cloud) < 0)
{
cout << "Error: cannot load the PCD file!!!"<< endl;
return -1;
}
PLYWriter writer;
writer.write(plyFileName, cloud, Eigen::Vector4f::Zero(),
Eigen::Quaternionf::Identity(),true,true);
return 0;
}
2. Convierta archivos de capas en pcl a archivos vtk
typedef pcl::PointXYZRGB PointT;
typedef pcl::PointCloud<PointT> PointCloudT;
int ply2vtk(std::string polyFileName = "./plyFileName.ply",std::string vtkFileName = "./vtkFileName.vtk")
{
PointCloudT::Ptr pc(new PointCloudT);
if (pcl::io::loadPLYFile(plyFileName, *pc) == -1) {
PCL_ERROR("Error reading point cloud %s\n", filename.c_str());
return -1;
}
pcl::PCLPointCloud2 cloud2;
pcl::toPCLPointCloud2(*pc, cloud2);
pcl::io::saveVTKFile(vtkFileName, cloud2);
return 0;
}