#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
int
main(int argc,char**argv)
{
pcl::PointCloud<pcl::PointXYZ> cloud;
// 创建点云
cloud.width=5;
//对于无序点云,它将表示点云中点的个数
//对于有序点云,表示有序点云的一行点的总数
cloud.height=1;
//对于无序点云,它将被设置为1
//对于有序点云,表示有序点云的行的总数
cloud.is_dense=false;//不存在无效点(NaN 点)
cloud.points.resize(cloud.width*cloud.height);//修改点云的大小
for(size_t i=0;i<cloud.points.size();++i)
{
cloud.points[i].x=1024*rand()/(RAND_MAX+1.0f);
cloud.points[i].y=1024*rand()/(RAND_MAX+1.0f);
cloud.points[i].z=1024*rand()/(RAND_MAX+1.0f);//随机生成点云
}
pcl::io::savePCDFileASCII("test_pcd.pcd",cloud);//以ASCII形式存储为pcd文件
std::cerr<<"Saved "<<cloud.points.size()<<" data points to test_pcd.pcd."<<std::endl;
for(size_t i=0;i<cloud.points.size();++i)//依次输出点云数据
std::cerr<<" "<<cloud.points[i].x<<" "<<cloud.points[i].y<<" "<<cloud.points[i].z<<std::endl;
return(0);
}
执行结果
参考点云库PCL从入门到精通。