点云需要滤波的原因
- 点云数据密度不规则需要平滑
- 因为遮挡等问题造成离群点需要去除
- 大量数据需要下采样
- 噪音数据需要去除
1.直通滤波
对指定的某一维度实行简单的滤波,就是类似于2D处理中的画ROI,此滤波可以将x(y和z)在某一范围的点云剥离出来或者剥离出去。
2.VoxelGrid滤波器对点云进行下采样
此滤波方式使用体素化网格方法实现下采样,即减少点的数量,减少点云数据,并同时保持点云的形状特征,在提高配准,曲面重建,形状识别等算法速度中十分实用。此算法原理是在被滤波的点云中创建一个三维体素栅格(可以将体素栅格想象成微小的空间三维立方体的集合),然后在每个体素(即三维立方体内),用体素中所有点的重心来近似显示体素中的其他点,这样该体素内所有点就用一个重心点表示。(此类方法比体素中心要更准确但是会更慢)
3.使用uniformSampling进行均匀采样
原理:对点云数据创建一个三维体素栅格,然后,在每个体素保留一个最接近体素中心的点,代替体素中所有点。不如体素中的重心代替体素准。
4.使用StatisticalOutlierRemoval滤波器移除离群点(统计滤波)
此滤波原理是。对于输入的点云数据中对点与临近点的距离分布计算,对于每个点,我们计算他到他所有临近点的平均距离,假设得到的结果是一个高斯分布,其形状由均值与标准差决定,平均距离在标准范围(由全局距离平均值和方差定义)之外的点,可被定义为离群点并可从数据集中去除掉。
5.半径滤波
对整个输入迭代一次,对于每个点进行半径R邻域搜索,如果邻域点的个数低于某一阈值,则该点将被视为噪声点并被移除。
6.条件滤波
//筛选满足特定条件的点云数据。有两种类型的条件:
// [1]ConditionAnd: 所有条件都要满足// [2]ConditionOr : 满足一个条件即可
// 可以设置一个或多个条件对象,并为条件对象添加比较算子。条件比较算子包含三项:// [1]名称:对应于点云XYZ字段名称、RGB颜色空间、HSI颜色空间中的颜色分量等。// [2]比较运算符:GT、GE、LT、LE、EQ// [3]值:即要比较的名称的数值//运算符 含义// GT greater than 大于// GE greater than or equal 大于等于// LT less than 小于// LE less than or equal 小于等于// EQ 等于
7.索引提取
8.使用参数化模型投影点云
此方法是将点投影到一个参数化模型上(例如平面或者球体)。参数化模型通过一组参数来设定。
9.模型滤波
10.双边滤波
11.CropHull任意多边形内部点云提取
跟2D图像中画ROI一样