PCL中的滤波(1)带有采样性质的滤波

Posted by Ada on November 10, 2018

点云滤波:旨在滤除非必要的噪声,噪声往往来源于采集阶段,设备的精度,采集环境,

电磁衍射干扰都会导致噪声。噪声多表现为散列点,离群点等等。而点云的滤噪主要是为了后续的配准,特征提取等处理。

PCL中主要的处理场景

  • 密度不均待平滑
  • 离群点
  • 减少数据量的降采样

事实上,在PCL中的滤波器非常多,我结合我的所知做了以下分类,此次先说第一类。

具有采样意义的滤波器。

1、体素格滤波器 VoxelGrid filter

特点:在网格内减少点数量保证重心位置不变.

Voxel意为体素,如果你知道像素一词—–pixel 就能理解体素,像素是构成图像的单位方片。体素就是三维空间的单位立方体。

体素滤波之所以能达到降采样的目的,是把聚集在单位体素里的n个点。求出质心点之后,作为一个代表点,由此数据量大幅减少。

VoxelFilter.jpg

2、均匀采样: pcl::UniformSampling

原理和体素滤波是很相似的,但是体素采用单位立方体,而均匀采样取一定半径 r 的球体内的点保留质心。

看一下对比:

filter.png

可能不是特别突出,看一下细节:voxelVSunifor_details.png

栅格采样相比之下采出来分布会相对规律一些。

3、不算滤波的增采样:setUpsamplingMethod

假如我们的原始数据太少,想要获取多一些的点的信息贡献于后面的处理。就要用到增采样(也叫上采样)。本质应该是一个插值的过程。值得提醒的是这种带着“猜想”性质的采样结果未必准确。比如。。。。upSample.png

这一类的滤波算是比较常用的,尤其是体素滤波,作为很多初学者PCL滤波入门的必由之路。

多看PCL官网的Tutorials.

VoxelFridFilter

如果说到实现方式,也是可以手动实现的。其实现的本质,和八叉树有关,八叉树的相关介绍,可以参见我的另一篇博文:八叉树与空间搜索。但即使不用八叉树,自己也可以写一个类似的了。

下次将介绍其它性质的滤波器。


本站总访问量: