1、PCD文件与PLY文件互相转换
这里的PCD文件与PLY文件的互相转换是简单的将点的xyz坐标以及rgb数据转换,没有涉及到网格化。如果想从PCD文件生成网格模型可以参考快速三角化:http://www.pclcn.org/study/shownews.php?lang=cn&id=111
a、PCD转PLY
//PCD转换为PLY******************************************************
#include <pcl/io/pcd_io.h>
#include <pcl/io/ply_io.h>
#include<pcl/PCLPointCloud2.h>
#include<iostream>
#include<string>
using namespace pcl;
using namespace pcl::io;
using namespace std;
int PCDtoPLYconvertor(string & input_filename ,string& output_filename)
{
pcl::PCLPointCloud2 cloud;
if (loadPCDFile(input_filename , cloud) < 0)
{
cout << "Error: 无法加载PCD文件!!!"<< endl;
return -1;
}
PLYWriter writer;
writer.write(output_filename, cloud, Eigen::Vector4f::Zero(), Eigen::Quaternionf::Identity(),true,true);
return 0;
}
int main()
{
string input_filename = "0.pcd";
string output_filename = "cloud_ply.ply";
PCDtoPLYconvertor(input_filename , output_filename);
cout << "pcd->ply转换完毕!!!"<< endl;
return 0;
}
b、PLY转PCD
//PLY转换为PCD******************************************************
#include <pcl/io/pcd_io.h>
#include <pcl/io/ply_io.h>
#include <pcl/point_types.h>
#include <iostream>
using namespace std;
using namespace pcl;
using namespace io;
using namespace pcl::io;
bool
loadCloud (const std::