PCL打开大型ply点云文件

学习使用pcl点云库内置的点云读取方法的时候,查到的方法很多都是不能直接打开大型点云的,只适用于小型点云的显示。

小型点云展示

#include "stdafx.h"
#include  
#include  
#include  
#include 
#include 
#include 
#include 
//这个只能读取小文件
int displayply(string ply_path){

	pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
	
	if (pcl::io::loadPLYFile<pcl::PointXYZ>(ply_path, *cloud) == -1) //* load the file 
	{
		PCL_ERROR("文件读取失败! \n");
		system("PAUSE");
		return (-1);
	}
	//pcl::StatisticalOutlierRemoval::applyFileter()
	pcl::visualization::CloudViewer viewer("Viewer");
	viewer.showCloud(cloud);
	system("PAUSE");
	return 0;

}

pcl内置的显示大型点云三角面结果的方法

//头文件导入与上述一致
//读取大型点云
//传入文件路径/文件名
int readply(string ply_path){
	pcl::PolygonMesh mesh;

	if (pcl::io::loadPLYFile(ply_path, mesh))
	{
		std::cout << "文件读取失败!";
	}
	
	boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer(new pcl::visualization::PCLVisualizer("3D viewer window"));
	viewer->addPolygonMesh(mesh, "mesh");
	while (!viewer->wasStopped())
	{
		viewer->spinOnce();
	}
	return 0;
}

你可能感兴趣的:(PCL,C/C++)