【2】PCL滤波之直通滤波器

【1】直通滤波器

直通滤波器:对指定维度(X,Y,Z,BGR等)进行某一个范围滤波,可以删除这个范围内部点,也可以删除这个范围外部的点
函数:pcl::PassThroughpcl::PointXYZ pass;//实例化直通滤波器

【2】实例

// THroughPass.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include "pch.h"
#include <iostream>
#include <iostream>
#include <ctime>
#include <pcl/point_types.h>
#include <pcl/filters/passthrough.h>

int
main222(int argc, char** argv)
{
	//随机种子
	srand(time(0));
	//生成两个点云,一个用于输入,一个用于保存输出
	pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
	pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_filtered(new pcl::PointCloud<pcl::PointXYZ>);
	//填入点云数据
	cloud->width = 5;
	cloud->height = 1;
	cloud->points.resize(cloud->width * cloud->height);
	for (size_t i = 0; i < cloud->points.size(); ++i)
	{
		cloud->points[i].x = rand() / (RAND_MAX + 1.0f) - 0.5;
		cloud->points[i].y = rand() / (RAND_MAX + 1.0f) - 0.5;
		cloud->points[i].z = rand() / (RAND_MAX + 1.0f) - 0.5;
	}
	//打印点云数据
	std::cerr << "Cloud before filtering: " << 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;
	// 创建滤波器对象 直通滤波器
	pcl::PassThrough<pcl::PointXYZ> pass;//实例化直通滤波器
	pass.setInputCloud(cloud);//在入点云
	pass.setFilterFieldName("z");//滤波的字段,即滤波的方向。可以是XYZ也可以是BGR
	pass.setFilterLimits(0.0, 1.0);//滤除在z轴方向上不在0.0-0.1范围内的所有点
	//pass.setFilterLimitsNegative (true);//设置保留范围内部还是范围外部  默认false为内部
	pass.filter(*cloud_filtered);//开始滤波,结果输出至cloud_filtered中

	//打印滤波完成的点云数据
	std::cerr << "Cloud after filtering: " << std::endl;
	for (size_t i = 0; i < cloud_filtered->points.size(); ++i)
		std::cerr << "    " << cloud_filtered->points[i].x << " "
		<< cloud_filtered->points[i].y << " "
		<< cloud_filtered->points[i].z << std::endl;
	return (0);
}


  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值