在PCL中,读取文件一般格式为pcd格式,如果需要进行格式转化,可以如下操作。
一、ply->pcd
#include <iostream>
#include <pcl/common/io.h>
#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
#include <pcl/PolygonMesh.h>
#include <vtkSmartPointer.h>
#include <vtkPolyData.h>
#include <pcl/io/pcd_io.h>
#include <pcl/io/vtk_lib_io.h>
using namespace std;
int main()
{
//加载ply格式文件
pcl::PolygonMesh mesh;
pcl::io::loadPolygonFilePLY("....ply", mesh);
vtkSmartPointer<vtkPolyData> polydata = vtkSmartPointer<vtkPolyData>::New();
//创建一个新的点云对象
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>());
//转换
pcl::io::mesh2vtk(mesh, polydata);
pcl::io::vtkPolyDataToPointCloud(polydata, *cloud);
pcl::io::savePCDFileASCII("....pcd", *cloud);
return 0;
}