• PCL——Filter


    PCL中总结了需要进行点云滤波处理的情况:
    1、点云数据密度不规则需要平滑。
    2、因为遮挡等问题造成离群点需要去除。
    3、大量数据需要进行下采样。
    4、噪声数据需要去除。

    滤波器种类:
    1、直通滤波;
    2、双边滤波;
    3、体素格滤波;
    4、均匀采样;
    5、增采样;
    6、统计滤波;
    7、半径滤波;
    8、参数化模型投影点云;
    9、ExtractIndices滤波;
    10、ConditionalRemoval;
    11、RadiusOutilerRemoval;
    12、CropHull任意多边形内部点云提取;

    直通滤波器

    过滤掉在指定维度方向上取值不在给定阈值内的点

    实现原理:
    1、首先,指定一个维度以及该维度下的值域;
    2、其次,遍历点云中的每个点,判断该点在指定维度上的取值是否在值域内,删除取值不在值域内的点;
    3、最后,遍历结束,留下的点即构成滤波后的点云。

    直通滤波器简单高效,适用于消除背景,消除高程等操作。

    双边滤波器

    核心思想:通过邻近采样点的加权平均来修正当前采样点的位置。同时也会有选择的剔除部分与当前采样点差异太大的相邻采样点,从而达到保持原有特征的目的。

    滤波器核有两个函数生成:空间域核,值域核。

    双边滤波可以保边去噪。双边滤波卷积计算两个权值,一个用于空间域核(高斯滤波),一个用于值域核,如果卷积在边缘(特征差异较大),值域核权值将会变小降低权重,抑制空间域核的作用。

    体素格滤波器(VoxelGrid)

    体素化网格实现下采样(减少点的数量),同时保持点云的形状特征。

    实现原理:
    (1)使用点云数据创建出相应的三维体素栅格(微小三维立方体的集合)
    (2)然后在每个体素内,用体素内所有点的重心来近似代表其他的点(体素内的所有点用其重心点表示)

    均匀采样(UniformSampling)

    实现原理:和VoxelGrid滤波很相似,但是VoxelGrid滤波采用的是立方体体素重心,而UniformSamping取半径r的球体的重心。

    增采样(UpSampling)

    增采样是一种表面重建方法,当点云数据少时,增采样可以通过内插目前拥有的点云数据,恢复出原有的表面。

    统计滤波器(StatisticOutilerRemoval)

    使用统计分析技术来去除离群点。

    核心思想:假设点云中所有的点与其最近的k个邻居点的平均距离满足高斯分布,那么,根据均值和方差可以确定一个距离阈值,当某个点与其最近k个点的平均距离大于这个阈值时,判定该点为离群点并去除。

    实现原理:首先,遍历点云,计算每个点与其最近的k个邻居点之间的平均距离;其次,计算所有平均距离的均值μ与标准差σ,则距离阈值dmax可表示为dmax=μ+α×σ,α是一个常数,可称为比例系数,它取决于邻居点的数目;最后,再次遍历点云,剔除与k个邻居点的平均距离大于dmax的点。

    参数化模型投影点云

    将点云投影到参数化模型上(平面,球)。参数化模型由一组参数来设定。比如平面ax + by + cy + d = 0由四个参数所确定。PCL中有特意存储常见模型系数的数据结构。

    ExtractIndices滤波器

    基于某一分割算法提取点云中的一个子集。

    RadiusOutilerRemoval

    RadiusOutilerRemoval核心思想:删除输入点云一定范围内近邻点数量没有达到要求的点。

    ConditionalRemoval

    用于删除点云中不符合用户指定的一个或多个条件的点。

    CropHull任意多边形内部点云提取

    输入一个2D封闭的多边形和一个2D平面点云(这些平面点是多边形的顶点),然后提取属于该2D封闭的多边形内部或外部的点。

  • 相关阅读:
    Cobalt Strike
    String字符串的存储原理
    C# 超好用的自定义异形窗体
    使用java连接Libvirtd
    acwing算法基础之数据结构--并查集算法
    Hadoop核心之MapReduce案例总结Ⅱ
    upload上传弹窗前二次确认
    1 selenium及环境安装
    AAC音视频编码详解
    信息论基础第二章部分习题
  • 原文地址:https://blog.csdn.net/qq_45153670/article/details/127583408