PCL完全是一个模块化的现代C++模板库。其基于以下第三方库:Boost、Eigen、FLANN、VTK、CUDA、OpenNI、QHull,实现点云相关的获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。
- Boost:用于共享指针和线程;
- Eigen:用于矩阵、向量等数据操作;
- FLANN:用于在KD树模块中快速近邻搜索;
- VTK:在可视化模块中用于3D点云渲染和可视化;
为了进一步简化和开发,PCL被分成一系列较小的代码库:
- pcl filters:采样、去除离群点、特征提取、拟合估计等过滤器。
- pcl features:实现多种三维特征的筛选,如:曲面法线、曲率、边界点估计等。
- pcl I/O:实现数据的输入和输出操作。
- pcl surface:实现表面重建技术,如网格重建,凸包重建。
- pcl register:实现点云配准方法,如ICP等。
- pclkeypoints:实现不同的关键点提取方法。
- pcl range:实现支持不同点云数据集生成的范围图像。