点云滤波概述

点云滤波概述

点云噪声是指在获取点云数据时,由于设备精度、操作经验或环境因素等影响,导致获取到的数据存在误差,在实际应用中,这些噪声点会对数据处理产生不良影响。
除了噪声点以外,由于外界干扰、障碍物等因素,还可能出现一些距离主体较远的离散点,这些点被称为离群点

因此,需要对点云进行一个滤波处理,来去除这些噪声点和离群点,获得一个精度较高的点云数据,同时,滤波还可以实现平滑处理,下采样、孔洞修复等。

在点云处理流程中,滤波处理作为点云处理第一步,对后续数据处理有较大影响。只有经过滤波处理,才能更好地进行后续的:配准、特征提取、曲面重建、可视化等。

PCL中的滤波模块:PCL(点云库)中提供了丰富的滤波算法,包括但不限于:双边滤波、高斯滤波、条件滤波、直通滤波、随机采样一致性滤波、半径滤波、体素网格滤波,统计离群点滤波等

现在做一个统计整理一下这些传统的点云滤波算法

算法名称 核心原理 主要用途 关键参数 优缺点
直通滤波(PassThrough) 沿指定坐标轴(X/Y/Z)保留 / 删除指定范围的点 快速裁剪 ROI、去除远离主体的离群点 setFilterFieldName()setFilterLimits() 优点:简单高效;缺点:仅单轴 / 多轴范围过滤,灵活性有限
条件滤波(ConditionalRemoval) 自定义多条件(坐标、强度、颜色、法向量等)筛选点 高度定制化过滤(如保留地面以上点、过滤特定强度值) 条件表达式(如 x>0.5 && z<1.0)、逻辑运算符 优点:灵活强大;
缺点:需手动设计条件,复杂度高
体素滤波(VoxelGrid) 空间划分为体素,每个体素用重心点替代 数据降采样、加速后续处理、保持宏观形状 setLeafSize()(体素边长) 优点:降采样效果好、速度快;
缺点:会丢失局部细节
统计滤波(StatisticalOutlierRemoval) 计算点与 K 近邻平均距离,剔除距离超全局均值 ±N 倍标准差的点 去除稀疏离群噪声(如测量误差产生的孤立点) setMeanK()(近邻数)、setStddevMulThresh()(标准差倍数) 优点:稳健去噪;
缺点:对密度不均点云敏感、计算量较大
半径滤波(RadiusOutlierRemoval) 以点为中心画球,球内邻居数 < 阈值则删除该点 去除孤立噪点、保留密集区域 setRadiusSearch()(搜索半径)、setMinNeighborsInRadius()(最小邻居数) 优点:简单直观、速度快;
缺点:半径 / 阈值需经验调参
高斯滤波(GaussianFilter) 邻域点按高斯分布加权平均,平滑点云 去除高频噪声、平滑表面 高斯核标准差 sigma、搜索半径 优点:平滑效果好;
缺点:易模糊边缘、丢失细节
双边滤波(BilateralFilter) 同时考虑空间距离与属性(强度)差异加权平均,保边去噪 平滑噪声同时保留边缘 / 细节(如工业零件、医疗扫描) 空间标准差 sigma_s、属性标准差 sigma_i、搜索半径 优点:保边 + 去噪;
缺点:仅处理强度字段、计算量较大
随机采样一致性滤波(RANSAC) 迭代随机采样拟合几何模型(平面 / 线 / 球),保留内点、剔除外点 拟合基础几何、分离地面 / 墙面、去除模型外噪声 模型类型、inlierThreshold(内点距离阈值)、最大迭代次数 优点:抗外点能力极强;
缺点:迭代耗时、需预设模型

后面会依次介绍一下对应各种算法的原理以及对应的实现代码,感兴趣的朋友可以关注一下。

posted @ 2026-03-14 10:26  图图的点云库  阅读(1)  评论(0)    收藏  举报