PCL点云滤波算法

一、直通滤波器

在点的属性上设置范围,对点进行滤波,保留该属性上范围内或范围外的点

(1)指定一个维度以及该维度下的值域

(2)遍历点云中每一个点,判断该点在指定维度下的值是否存在值域内,不存在则删除

(3)遍历结束,剩下没被删除的点就是滤波后的点

使用场景:在知道噪声点某一维度上的值时,可以进行去噪

二、体素滤波器(下采样)

体素滤波器可以在达到点云下采样的同时,不破坏点云几何结构,但是会移动点云的位置。主要时用于下采样

(1)根据输入的点云,计算一个刚好能包住点云的立方体,根据设定的分辨率,将该立方体分成多个不同的小立方体(体素)

(2)对于每个体素,计算体素内所有点的重心(坐标平均值),用重心坐标来表示体素内的若干个点的坐标

pcl::VoxelGrid<pcl::PointXYZ> sor;
sor.setInputCloud(cloud_in);
sor.setLeafSize(0.01,0.01,0.01);
sor.filter(*cloud_filtered);

三、近似体素滤波

与体素滤波VoxelGrid不同,近似体素ApproximateVoxelGrid用体素的中心坐标来表示体素内点的坐标,该方法不依赖于体素内是否存在点云

    pcl::ApproximateVoxelGrid<pcl::PointXYZ> approximate_voxel_filter;
    approximate_voxel_filter.setLeafSize (0.01, 0.01, 0.01);
    approximate_voxel_filter.setInputCloud (cloud_in);
    approximate_voxel_filter.filter (*cloud_filtered);

四、均匀采样滤波器(下采样)

均匀采样通过构建指定半径的球体来对点云进行下采样滤波,将球体内里球心最近的点作为下采样之后的点。相比于体素滤波,该方法不会移动点的位置

pcl::UniformSampling<pcl::PointXYZ> unifm_smp;
unifm_smp.setRadiusSearch(0.01);
unifm_smp.setInputCloud(cloud_in);
unifm_smp.filter(*cloud_filtered);

五、统计滤波器(去噪)

统计滤波器主要用于去除稀疏离群点

(1)计算每个点到其临近的k个点的平均距离

(2)若得到的结果符合高斯分布,根据给定的均值与方差,剔除方差之外的点

pcl::StatisticalOutlierRemoval<pcl::PointXYZ> sor;
sor.setInputCloud (cloud_in);
sor.setMeanK (20); //设置考虑查询点临近点数
sor.setStddevMulThresh (1.0);//设置判断是否为离群点的阀值
sor.filter (*cloud_filtered);

六、条件滤波器

条件滤波器可以看做是直通滤波器的升级版,直通滤波器只能对某一个维度进行值域选取,而条件滤波器可以多个在多个维度上进行值域选取

七、半径滤波(去噪)

(1)分别以每个点为中心,计算其半径内的其它点个数

(2)当半径内其它点个数小于某一指定点时,该中心点被剔除

    pcl::RadiusOutlierRemoval<pcl::PointXYZ> outrem;
    outrem.setInputCloud(cloud_in);
    outrem.setRadiusSearch(0.2);//设置半径为0.2的范围内找临 *点
    outrem.setMinNeighborsInRadius (3);//设置查询点的邻域点 集数小于3的删除
    outrem.filter (*cloud_filtered); //在半径为0.2 在此半径内必须要有3个邻居点,此点才会保存

八、投影滤波

将三维点云投影到二维平面上,用图像处理的方法来进行滤波

九、模型滤波

根据点到模型的距离,删除非模型点

十、高斯滤波

主要目的:平滑点云数据以及去除噪声

滤波器根据预定义的窗口大小,在其邻域内选择一定数量的邻居点,根据邻居点与目标点之间的距离远近关系,为每个点分配一个权重值。权重值通常与距离成反比。最后,对邻居点的数值进行加权平均,得到目标点的新数值

十一、双边滤波器(平滑)

双边滤波是一种非线性滤波器,它可以达到保持边缘、降噪平滑的效果。一定程度上弥补了高斯滤波的缺点,双边滤波效果比高斯滤波好。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值