目录
1.前言
本专栏PCL所有文章,基于PCL1.12.1、VS2019、windows10。
使用数据均为PCL自带的测试数据。
本专栏按照PCL接口文件目录顺序依次实现每个目录中的所有文件(不包含PCL自身调用的接口文件,如clipper3D.h这样的类),方便使用者查找学习。
本专栏目的在于你工作的时候,了解大概原理和关键函数,然后就可以上手使用,如果想知道内部很具体的数学计算逻辑,之后有机会会补充。
所有的原理和关键函数都用自己的语言进行了尽量直白的描述,没有直接把英文注释翻译一下搬上来,并且较难理解的部分有配图(拒绝学术性语言,教程是教怎么用,不是装高手)
。
读者有什么建议的话,可以在下面留言,专栏写的顺序暂时定为:PCL、OSG/OSGearth、Opencv
一起进步。
转载请附上我的博客链接:者山海-优快云博客https://blog.youkuaiyun.com/xhm01291212?spm=1011.2266.3001.5343
2.Filters(滤波)
2.1 抽稀
体素中心点滤波(approximate_voxel _grid)
表面法线滤波器(sampling_surface_normal)
2.1.1 抽稀对比
实际使用优先级:
体素滤波 > 体素中心滤波 > 均匀采样滤波 > 随机采样滤波 > 法向量空间下采样滤波 > 表面法线滤波。
抽稀速度对比:
随机采样滤波 > 体素滤波 > 体素中心滤波 > 均匀采样滤波 >法向量空间下采样滤波 ≈ 表面法线滤波。
抽稀效果对比:
均匀采样滤波 > 体素滤波 > 体素中心滤波>随机采样滤波
2.2 去噪
统计滤波(statistical_outlier_removal)
2.2.1 去噪对比
实际使用优先级:
半径滤波 > 统计滤波 > 高斯滤波 > 中值滤波
去噪速度对比:
半径滤波 > 中值滤波 > 统计滤波 > 高斯滤波
去噪效果对比:
几种往往结合使用
2.3 平滑
双边滤波(bilateral)(强度)
快速双边滤波(fast_bilateral、fast_bilateral_omp)(强度)
2.3.1 平滑对比
实际使用优先级:
高斯滤波 ≈ 中值滤波
快速双边滤波 > 双边滤波(强度)
2.4 裁剪
2.5 其他常用滤波
3.Features(特征)
3.1 法向量计算
密集数据表面法线估计(Feature_LinearLeastSquaresNormalEstimation)
积分图法线估计(Feature_IntegralImageNormal)
3.1.1 法向量计算对比
点云法线计算:速度慢,较准确,常用,计算每个点的法向量,可用于无序点云及有序点云。
密集数据表面法线估计:速度快,准确度不及其他,不常用,计算部分特征点的法向量,可用于无序点云及有序点云。
积分图法线估计:速度快,准确性较好,不常用,计算每个点的法向量,只适用于有序点云。
3.2 边界提取
3.3 点云分割
3.4 三维重建
3.5 其他
获取点云AABB包围盒(Feature_MomentOfInertiaEstimation)
获取点云OBB包围盒(Feature_MomentOfInertiaEstimation)
获取点云特征值+特征向量(Feature_MomentOfInertiaEstimation)
计算点云曲率(Feature_PrincipalCurvatures)
4.common(通用)
4.1 基础计算
4.2 距离及投影计算相关
4.3 点云操作相关
拼接两个字段(pcl::PCLPointField)相同的点云
拼接两个字段(pcl::PCLPointField)不同的点云
5. IO(读写PCL相关文件)
5.1 读写文件相关
读取ASCII类型点云文件【*.txt、*.asc、*.neu、*.xyz、*.pts、*.csv】
6.KdTree(KD树)
7.OcTree(八叉树)
8.Registration(配准)
8.1 点对相关
8.2 配准相关
8.2.1 粗配准
8.2.2 精配准
9. sample_consensus(采样一致性拟合)
9.1 拟合算法相关
9.2 拟合模型相关
10. Segmentation(分割)
区域生长分割(分割建筑物或地面的各部分)
基于颜色的区域生长分割(分割具有颜色流通性的各部分)