点云滤波处理(使用CloudCompare软件)

最近研究了一下点云滤波的功能,所以写一篇笔记记录一下。

文章目录

  • 一、点云滤波的意义
  • 二、梯度滤波(Gradient)算法
  • 三、CSF(Cloth Simulation Filter)过滤算法
  • 四、Bilateral滤波算法

一、点云滤波的意义

在我们获取点云的时候,总会由于设备精度的限制、操作人员的人为因素和环境条件因素等带来的影响,以及电磁波衍射特性和数据进行拼接配准操作过程的影响,点云数据总会产生一些我们意想不到的噪声点。在点云处理流程中滤波处理作为预处理的第一步,往往对后续处理的影响很大,因此只有在滤波预处理中将噪声点、离群点等等按照后续处理定制,才能更好的进行配准、特征提取、曲面重建和可视化等后续的处理。

·而在PCL中总结了集中需要进行点云滤波处理的情况,这几种情况分别是:
(1)点云数据密度不规则需要平滑。
(2)因为遮挡等问题造成离群点需要去除。
(3)大量数据需要进行“下采样”(Downsample)。
(4)噪声数据需要去除。
·对应的解决方法是:
(1)按具体给定的规则限制过滤去除点。
(2)通过常用滤波算法修改点的部分属性。
(3)对数据进行下采样。

说了这么多,接下来就使用CloudCompare软件来进行简单的滤波处理。

二、梯度滤波(Gradient)算法

因为在CloudCompare软件中,我并没有找到现成的功能(指点击一下就自行处理),所以我是用CC中的几个小功能结合在一起才能达到滤波的效果。
1、打开软件,加载数据。
点云滤波处理(使用CloudCompare软件)_第1张图片
2、为该数据添加Scalar标量字段,像CC中的这种标量字段以我现在的理解它和Aicgis中属性表的字段应该一样,都是可以表示对象的某种属性值,本次实验是把点云的z坐标值作为它的一个scalar。
点云滤波处理(使用CloudCompare软件)_第2张图片
点云滤波处理(使用CloudCompare软件)_第3张图片

点云滤波处理(使用CloudCompare软件)_第4张图片
3、点击Gradient功能按钮,CC会根据当前的scalar字段计算出一个Gradient字段。
点云滤波处理(使用CloudCompare软件)_第5张图片点云滤波处理(使用CloudCompare软件)_第6张图片

这一步是在问我们是否要按照欧式距离来计算得出Gradient字段,这里我选择了是,因为当前字段是点云实体的高程字段。
点云滤波处理(使用CloudCompare软件)_第7张图片
此时该字段的值表示的是两个相邻点之间的倾斜度。
4、得到了Gradient字段之后,我们可以利用梯度的值对原始数据进行简单的过滤。
点云滤波处理(使用CloudCompare软件)_第8张图片
5、选择要过滤的点的Gradient值得范围,点击Split即可。
点云滤波处理(使用CloudCompare软件)_第9张图片

点云滤波处理(使用CloudCompare软件)_第10张图片
6、实现的效果
过滤掉的点云部分:
点云滤波处理(使用CloudCompare软件)_第11张图片
最终效果:
点云滤波处理(使用CloudCompare软件)_第12张图片

三、CSF(Cloth Simulation Filter)过滤算法

该方法相较于之前的操作步骤相对而言简单了很多,其原理也非常的巧妙:是将扫描得到的点云进行倒置,然后用一种刚性布料覆盖翻转后的点云。通过分析布料节点与相应点云中的点之间的相互作用,可以确定布料节点的位置用以生成近似的地表形状,最后,再通过比较原始点云中的点和生成的布料曲面之间的距离,实现从点云中提取地面点。
点云滤波处理(使用CloudCompare软件)_第13张图片
具体操作步骤如下:
1、打开软件,加载数据(同上)。
2、选中点云对象,点击cc中“plugin”中的“CSF filter”。
点云滤波处理(使用CloudCompare软件)_第14张图片
3、设置CSF方法的参数。
点云滤波处理(使用CloudCompare软件)_第15张图片
点云滤波处理(使用CloudCompare软件)_第16张图片
图中:Cloth resolution:是指用于覆盖地形的布的网格大小(单位与点云的单位相同)。你设置的布分辨率越大,你得到的DTM就越粗糙;Max iterations:是指地形仿真的最大迭代次数。500对大多数场景来说都足够了。Classification threshold:是指根据点与模拟地形之间的距离,将点云划分为地面和非地面部分的阈值。0.5适用于大多数场景。
4、点击“OK”即可,处理效果如下:
过滤掉的点云部分:
点云滤波处理(使用CloudCompare软件)_第17张图片
最终效果:
点云滤波处理(使用CloudCompare软件)_第18张图片
从二和三中的处理效果可以发现,虽然二中的Gradient算法可以去除了很多草的主干部分,但是仍有一部分的残余的点云漂浮在地面之上;三中的CSF算法则可以去除草的上半部分,而对草的根部去除的效果并不理想。所以我就结合两种方法,先使用Gradient算法进行了第一次过滤,然后又使用了CC中的CSF过滤方法对数据进行了第二次过滤,处理的效果如下所示:
点云滤波处理(使用CloudCompare软件)_第19张图片

四、Bilateral滤波算法

双边滤波算法是通过考虑中心像素点到邻域像素点的距离(一边)以及像素亮度差值所确定的权重(另一边)来修正当前采样中心点的位置,从而达到平滑滤波效果。同时也会有选择性的剔除部分与当前采样点“差异”太大的相邻采样点 ,从而达到保持原特征的目的。

将三中最后处理的结果作为本次实验的对象。
1、选择要进行滤波处理的点云对象,并把当前的scalar设置为Coord.z,点击“Edit”——“Scalar Field”——“Bilateral Filter”算法。
点云滤波处理(使用CloudCompare软件)_第20张图片
2、设置参数。
点云滤波处理(使用CloudCompare软件)_第21张图片

图中:Spatial sigma:是指空间标准差,也就是定义中所提到的“中心像素点到邻域像素点的距离”的标准差。Scalar sigma:标量标准差,也就是指定义中的“像素亮度差值所确定的权重”的标准差。
3、点击“OK”即可生成Bilateral标量字段。
点云滤波处理(使用CloudCompare软件)_第22张图片
4、然后将Bilateral字段设置为原点云数据的Z坐标值即可。
点云滤波处理(使用CloudCompare软件)_第23张图片点云滤波处理(使用CloudCompare软件)_第24张图片

最后效果:
点云滤波处理(使用CloudCompare软件)_第25张图片
同理,Gaussian过滤方法也可以通过上述的操作过程得以实现。

你可能感兴趣的:(点云数据处理)