多个点云可视化

一个结果图中显示多个点云文件

在一个效果图中显示三个点云

代码

#define BOOST_TYPEOF_EMULATION
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/registration/icp.h>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/registration/icp.h>//icp头文件
#include <pcl/visualization/pcl_visualizer.h>


using namespace std;
typedef pcl::PointXYZ PointT;
typedef pcl::PointCloud<PointT> PointCloud;


void visualize_pcd(PointCloud::Ptr cloud_1, PointCloud::Ptr cloud_2, PointCloud::Ptr cloud_3)
{
	pcl::visualization::PCLVisualizer viewer(" Viewer");
	//cloud_1点云绿色
	pcl::visualization::PointCloudColorHandlerCustom<PointT> cloud_green(cloud_1, 0, 255, 0);
	//cloud_2点云红色
	pcl::visualization::PointCloudColorHandlerCustom<PointT> cloud_red(cloud_2, 255, 0, 0);
	//cloud_3点云蓝色
	pcl::visualization::PointCloudColorHandlerCustom<PointT> cloud_blue(cloud_3, 0, 0, 255);

	viewer.setBackgroundColor(255, 255, 255);
	viewer.addPointCloud(cloud_1, cloud_green, "cloud_1");
	viewer.addPointCloud(cloud_2, cloud_red, "cloud_2");
	viewer.addPointCloud(cloud_3, cloud_blue, "cloud_3");
	while (!viewer.wasStopped())
	{
		viewer.spinOnce(100);
		boost::this_thread::sleep(boost::posix_time::microseconds(100000));
	}

}

int main(int argc, char** argv)
{
	pcl::PointCloud<PointT>::Ptr cloud_1(new pcl::PointCloud<PointT>);
	pcl::PointCloud<PointT>::Ptr cloud_2(new pcl::PointCloud<PointT>);
	pcl::PointCloud<PointT>::Ptr cloud_3(new pcl::PointCloud<PointT>);

	pcl::io::loadPCDFile("D:\\数据集\\Armadillo_scans\\Armadillo_scans_pcd\\ArmadilloBack_0.pcd", *cloud_1);
	pcl::io::loadPCDFile("D:\\数据集\\bunnyply\\data3.pcd", *cloud_2);
	pcl::io::loadPCDFile("D:\\数据集\\dragon_stand\\dragon_stand\\dragonStandRight_0.pcd", *cloud_3);

	visualize_pcd(cloud_1, cloud_2, cloud_3);

	return (0);
}

结果

三个点云的显示结果

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值