PCL(PointCloudLibrary)——是一个的模块化的现代C++模板库。
其基于以下第三方库:Boost、Eigen、FLANN、VTK、CUDA、OpenNI、Qhull,实现点云相关的获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。
PCL包括多个子模块库
重要的PCL模块库有:
1.过滤器Filters
滤波是一种信号处理,其特征是对信号某些方面的完全或部分抑制。
用于3D点云数据滤波应用,包含异常值和噪声消除算法。
2.特征Features
特征库包括数据结构和从点云建立3D特征的方法。3D特征为对于特定点其周围的可用的几何关系信息,如特定的三维点、位置或空间。
广泛使用的几何点特征的示例是底层表面在查询点处的估计曲率和法线p
。
3.关键点Keypoints
关键点库含有两个点云集的关键点检测算法。关键点(也叫做兴趣点)是指在一副图像或者一个点云集中能够利用一个明确标准检测出来的稳定的、独特的点。
4.注册Registration
将一些点集数据在统一的世界坐标系下组合起来即为注册。
其关键在于确定各个点集之间的关联点,计算出各个关联点之间最近似的变换矩阵,对所有的原始数据集不停的重复此过程直到,直到出现各个点集之间的对齐误差小于指定的阈值,即可认为注册过程完成。
5.Kd树Kd-tree
Kd树库的基础数据结构使用了FLANN以便可以快速的进行邻区搜索。
6.八叉树Octree
八叉树库提供用于创建从点云数据的分层树数据结构的有效方法。
支持的操作有:空间分割、下采样、和搜索。
八叉树通常用来作邻区搜索
7.分割Segmentation
分割库包含用于分割点云成不同的集群算法。
适合处理由许多空间隔离区域组成的点云。
8.样本共识Sample Consensus
该库中实现的一些模型包括:直线,平面,圆柱和球体
9.表面Surface
表面库涉及从3D扫描重构原始表面。
10.范围图像Range Image
范围图像(或深度图)是其像素值表示距传感器原点的距离或深度的图像。
通过了解相机的固有校准参数,可以将范围图像转换为点云。
11.文件读写I/O
该IO库包含用于读取和写入点云数据(PCD)的文件,以及从各种传感装置捕获点云的类和函数。
12.可视化Visualization
能够快速原型和可视化的三维点云数据操作的算法
13.通用库Common
包含由多数PCL库中使用的共同的数据结构和方法
核心数据结构包括PointCloud类和用于表示点,曲面法线,RGB颜色值,特征描述符等的多种点类型。
14.搜索Search
搜索库提供了使用不同的数据结构,包括寻找最近的邻居方法:KdTree、八叉树……
原文 http://pointclouds.org/documentation/tutorials/walkthrough.php#walkthrough
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/20345.html