点云滤波

1方法

分别利用pcl::VoxelGrid,pcl::PassThrough,pcl::StatisticalOutlierRemoval对点云进行降采样,滤波,去燥处理。

2代码

// 创建滤波器对象
	pcl::VoxelGrid<pcl::PCLPointCloud2>sor;
	//读入原始点云
	sor.setInputCloud(cloud2);
	//设置体素大小
	sor.setLeafSize(1.0f, 1.0f, 1.0f);
	//滤波后点云存储
	sor.filter(*cloud2_filtered);
	pcl::fromPCLPointCloud2(*cloud2_filtered, *cloud_me);
	cout << "原点云点数:" << cloud->points.size() << endl;
	cout <<"降采样后点数:" <<cloud_me->points.size() << endl;
	//设置滤波器对象
	pcl::PassThrough<pcl::PointXYZ> pass;
	//设置输入点云
	pass.setInputCloud(cloud_me);
	//设置过滤时所需点云的字段
	pass.setFilterFieldName("z");
	//设置过滤字段的范围
	pass.setFilterLimits(-54, -45);
	//设置保留范围内的还是过滤掉范围内的
	pass.setFilterLimitsNegative(true);
	pass.filter(*cloud_medium);
	cout <<"按Z轴滤波后点数:" << cloud_medium->points.size() << endl;
	//创建滤波器对象
	pcl::StatisticalOutlierRemoval<pcl::PointXYZ> remov;
	//设置带滤波的点云
	remov.setInputCloud(cloud_medium);
	//设置在进行统计时考虑查询点临近点数
	remov.setMeanK(50);
	//判断是否为离群点的阈值
	remov.setStddevMulThresh(1.0);
	remov.filter(*cloud_final);
	cout <<"去噪后点数:"<< cloud_final->points.size() << endl;

3效果

在这里插入图片描述在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值