当激光或结构光设备采集的时候会因为被采集物体的表面材料,环境带来许多的噪声点(也叫做离群点),也会因为点云数据冗余,需要进行降采样,便于后续处理数据量的减少。
主要介绍PCL封装的直通滤波和统计滤波算法使用。
直通滤波是在给定的通道上(x、y、z等)进行给定区域的滤波,在自动驾驶中一般用来进行地面的滤除。
#include//头文件
cout<<"----------直通滤波开始-------------"<PassZ;
PassZ.setInputCloud(cloud);//传入点云
PassZ.setFilterFieldName("z");//设置滤波字段名,x方向
PassZ.setFilterLimits(minPt.z,0);//设置在过滤方向上的点云
PassZ.setNegative(true);//设置false为保留范围内的点,true为剔除范围内点
PassZ.filter(*cloud);//保存点
cout<<"----------直通滤波完成-------------"< 统计滤波是针对每一个点进行其领域的统计分析,得到该点到其领域点距离的分布特征,过滤掉不满足阈值的离群点,保留内点。
#include//头文件
cout<<"----------离群点滤波开始-------------"<sor;//创建过滤器
sor.setInputCloud(cloud);//传入要滤波的点云
sor.setMeanK(50);//每个点考虑最近邻个数为50
sor.setStddevMulThresh(1.0);//设置标准差阈值为1
//这意味着所有距离查询点的平均距离的标准偏差均大于1个标准偏差的所有点都将被标记为离群值并删除。
sor.filter(*cloud);
cout<<*cloud< 处理图像
