PCL Lesson1 :PCL库PCLVisualizer的简单使用

PCL库PCLVisualizer的简单使用。
包括实例化对象,填充点云,静态显示和动态显示

#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 nowAllNum = 1000;

	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;

	//设置默认的坐标系
	viewer2->addCoordinateSystem(1.0); 
	//设置固定的元素。红色是X轴,绿色是Y轴,蓝色是Z
	viewer2->addLine(pcl::PointXYZ(0, 0, 0), pcl::PointXYZ(10, 0, 0), "x");
	viewer2->addLine(pcl::PointXYZ(0, 0, 0), pcl::PointXYZ(0, 5, 0), "y");
	viewer2->addLine(pcl::PointXYZ(0, 0, 0), pcl::PointXYZ(0, 0, 2), "z");

	//设置动态刷新的元素
	while (!viewer2->wasStopped())
	{
		//填充点云并添加
		for (int i = 0; i < nowAllNum; 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
		//清理
		viewer2->removePointCloud("c1"); //移除特定的点云
		cloud2->clear();		//清空cloud

	}
	printf("hello world!\n");
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值