PCL(Point Cloud Library,点云库)是由斯坦福大学的Dr.Radu等学者基于ROS(Robot Operating System,机器人操作系统)下开发与维护的开源项目,最初被用来辅助机器人传感、认知和驱动等领域的开发。随着对三维点云算法的加入与扩充,PCL逐步发展为免费、开源、大规模、跨平台的C++编程库。
PCL框架包括很多先进的算法和典型的数据结构,如滤波、分割、配准、识别、追踪、可视化、模型拟合、表面重建等诸多功能。
在算法方面,PCL是一套包括数据滤波、点云配准、表面生成、图像分割和定位搜索等一系列处理点云数据的算法。
例如PCL中实现管道运算的接口流程:
①创建处理对象,例如滤波、特征估计、图像分割等;
②通过setInputCloud输入初始点云数据,进入处理模块;
③设置算法相关参数;
④调用不同功能的函数实现运算,并输出结果。
PCL部分常用的算法模块:
I/O:完成数据的输入、输出过程,如点云数据的读写;
filters:完成数据采样、特征提取、参数拟合等过程;
register:完成深度图像的配准过程,例如迭代最近点算法;
surface:完成三维模型的表面生成过程,包括三角网格化、表面平滑等。