PCD Lesson2:PCD文件的write

随机生成PCL点云,写入到PCD文件中并保存

#include <stdio.h>
#include <string>
#include <vector>
#include <fstream>
#include <iostream>

#include<boost/thread.hpp>
#include<boost/timer.hpp> 

#include <pcl/visualization/cloud_viewer.h>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>

#include <opencv2/opencv.hpp>

#define random(x1,x2) ((rand()%x2) - x1/2.0)

int main()
{
	int pointNum = 1000;	//每一帧的点个数
	int frameNum = 10;		//帧数目
	int intName = 0;		//PCD文件名称索引
	pcl::PointCloud<pcl::PointXYZ>::Ptr cloud2(new pcl::PointCloud<pcl::PointXYZ>); //PointXYZ 数据结构
	boost::shared_ptr<pcl::visualization::PCLVisualizer>viewer2 (new pcl::visualization::PCLVisualizer("line Viewer")); //PCLVisualizer 可视化类
	pcl::PointXYZ p;

	pcl::PCDWriter writer;
	
	//设置默认的坐标系
	viewer2->addCoordinateSystem(1.0); 

	
	while (frameNum--)
	{
		std::string filename("pcdData//test" + std::to_string(intName) + ".pcd");
		//填充点云并添加
		for (int i = 0; i < pointNum; i++)
		{
			p.x = random(0,10);  //0.1--5
			p.y = random(0, 20);
			p.z = random(0, 40);
			cloud2->push_back(p);
		}
		viewer2->addPointCloud(cloud2,"c1"); //添加特定的点云
		//可视化
		viewer2->spinOnce(30); //可视化30ms
		writer.write(filename, *cloud2); //保存
		
		intName++;
		//清理
		viewer2->removePointCloud("c1"); //移除特定的点云
		cloud2->clear();		//清空cloud

	}
	printf("hello world!\n");
	return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值