PCL 的点云处理流程通常从滤波开始,然后构建空间索引,配准,分割,重建,最后提取特征或可视化。下面按这个顺序整理常用功能和对应的代码片段,方便日常翻查。
基础操作速览
// 复制点云
pcl::copyPointCloud(*cloud, indicesY, *cloud_yboundary);
// 读取点云文件
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
if(pcl::io::loadPCDFile<pcl::PointXYZ>("source_slice_4000_change.pcd", *cloud) == -1) {
PCL_ERROR("Could not read file\n");
}
// 保存点云文件
pcl::io::savePCDFileBinary("dragonfps.pcd", *filtered);
滤波
预处理阶段的核心步骤,用来去噪、下采样或提取感兴趣区域。
常用滤波器
- 直通滤波器
- 体素滤波器(含改进版及最小点数约束)
- 统计滤波器
- 半径滤波器
- 条件滤波器(含基于曲率的下采样)
- 模型滤波器
- 投影滤波器(平面、球面、圆柱、拟合直线)
- 索引提取器
- 高斯滤波
- 双边滤波(基于强度、法线、快速及多线程版本)
- 中值滤波
- 阴影点移除
采样滤波
- 均匀采样(含快速版本)
- 随机采样
- 法线空间采样
- 索引空间采样
- MLS 上采样
- 最远点采样
- 局部最大值滤波
- 栅格最低点获取
裁剪滤波
- 任意多边形内部点云提取
- 立方体内点云过滤
- 平面裁剪器使用
KD 树与八叉树
空间索引结构,加速邻域搜索与数据处理。
KD 树
- KD 树基本使用
- 圆柱形邻域搜索
- K 近邻可视化
- 平均密度计算
- 重叠点删除
八叉树
- 八叉树基本使用
- 点云压缩应用
- 空间变化检测
- 体素边界最值点计算
- 体素中心计算
- 基于八叉树的体素滤波
点云配准
将不同视角的点云对齐到同一坐标系。粗配准提供初始位姿,精配准在此基础上优化。


