PCD文件格式的转换
1.PCD文件格式转PLY文件格式
bool
loadPCDCloud(const string &filename,pcl::PCLPointCloud2 &cloud)
{
TicToc tt;
print_highlight("Loading "); print_value("%s ", filename.c_str());
pcl::PLYReader reader;
tt.tic();
if (loadPCDFile(filename, cloud) < 0)
return (false);
print_info("[done, "); print_value("%g", tt.toc()); print_info(" ms : "); print_value("%d", cloud.width * cloud.height); print_info(" points]\n");
print_info("Available dimensions: "); print_value("%s\n", pcl::getFieldsList(cloud).c_str());
return true;
}
void
savePLYCloud (const std::string &filename, const pcl::PCLPointCloud2 &cloud, bool binary,bool use_camera)
{
TicToc tt;
tt.tic ();
print_highlight ("Saving "); print_value ("%s ", filename.c_str ());
pcl::PLYWriter writer;
//传感器采集原点 获取方向 Identity() 1 0 0 0
writer.write (filename, cloud, Eigen::Vector4f::Zero (), Eigen::Quaternionf::Identity (), binary,use_camera);
print_info ("[done, "); print_value ("%g", tt.toc ()); print_info (" ms : "); print_value ("%d", cloud.width * cloud.height); print_info (" points]\n");
}
bool format = 1;
bool use_camera = 1;
pcl::PCLPointCloud2 cloud;
if (!loadPCDCloud("4.pcd", cloud))
return (-1);
savePLYCloud("4.ply", cloud, format,use_camera);
2.PLY文件格式转PCD文件格式
bool
loadPLYCloud(const string &filename,pcl::PCLPointCloud2 &cloud)
{
TicToc tt;
print_highlight("Loading "); print_value("%s ", filename.c_str());
pcl::PLYReader reader;
tt.tic();
if (reader.read(filename, cloud) < 0)
return (false);
print_info("[done, "); print_value("%g", tt.toc()); print_info(" ms : "); print_value("%d", cloud.width * cloud.height); print_info(" points]\n");
print_info("Available dimensions: "); print_value("%s\n", pcl::getFieldsList(cloud).c_str());
return true;
}
void
savePCDCloud (const std::string &filename, const pcl::PCLPointCloud2 &cloud, bool format)
{
TicToc tt;
tt.tic ();
print_highlight ("Saving "); print_value ("%s ", filename.c_str ());
pcl::PCDWriter writer;
//传感器采集原点 获取方向 Identity() 1 0 0 0
writer.write (filename, cloud, Eigen::Vector4f::Zero (), Eigen::Quaternionf::Identity (), format);
print_info ("[done, "); print_value ("%g", tt.toc ()); print_info (" ms : "); print_value ("%d", cloud.width * cloud.height); print_info (" points]\n");
}
bool format = 1;
if (!loadPLYCloud("4.ply", cloud))
return (-1);
savePCDCloud("4.pcd", cloud, format);