PCL学习笔记(一)点云及PCL编程基础

  1. 定义
    通过测量仪器(激光,三维相机)得到的产品外观表面的点数据集合也称之为点云。 点云是在和目标物体表面特性的海量点集合。根据激光测量原理得到的点云,包括三维坐标(XYZ)和激光反射强度(Intensity)。
    通常使用三维坐标测量机所得到的点数量比较少,点与点的间距也比较大,叫稀疏点云;而使用三维激光扫描仪或照相式扫描仪得到的点云,点数量比较大并且比较密集,叫密集点云或者叫稠密点云。
  2. 结构图
    对于3D点云处理来说,PCL完全是一个的模块化的现代C++模板库。其基于以下第三方库:Boost、Eigen、FLANN、VTK、CUDA、OpenNI、Qhull,实现点云相关的获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。
  3. PCL库模块
    PCL包括多个子模块库。最重要的PCL模块库有如下:过滤器Filters、特征Features、关键点Keypoints、注册Registration、Kd树Kd-tree、八叉树Octree、切分Segmentation、Sample Consensus、Surface、Range Image、文件读写I/O、Visualization、通用库Common、Search在PCL中一个处理管道的基本接口程序是:
    (1)创建处理对象:(例如过滤、特征估计、分割等);
    (2)使用setInputCloud通过输入点云数据,处理模块;
    (3)设置算法相关参数;
    (4)调用计算(或过滤、分割等)得到输出。
  4. 编程基础
    PCL库安装
    CMake使用