GPU Tutorials
配置你的电脑以在PCL中使用Nvidia GPU
该教程解释怎么配置PCL已使用Nvidia GPU
使用Kinfu大比例尺生成纹理网格
该教程演示如何使用KinFu大比例尺从房间生成网格,并在后期处理中应用纹理信息以获得更吸引人的视觉效果。
使用点云库检测人及他们的姿势
该教程提供了一个人及其姿势检测的方法。
Input and Output Tutorials
PCD (Point Cloud Data)文件格式
该文档介绍了PCD文件格式以及在PCL中的使用方式。
从PCD文件中读取点云数据
该教程中,我们将学习怎么从PCD文件读取点云
写点云数据到PCD文件
该教程中我们将学习怎么写入点云数据到PCD文件
俩份点云数据的相加
在本教程中,我们将学习如何连接两个点云的字段和点数据。串联字段时,一个点云仅包含XYZ数据,另一个包含Surface法线信息。
PCL中的OpenNI Grabber框架
在本教程中,我们将学习如何从OpenNI摄像机获取点云数据。
Velodyne高清点云(Velodyne High Definition LiDAR)采集器
在本教程中,我们将学习如何从Velodyne HDL中获取点云数据。
The PCL Dinast Grabber Framework
In this tutorial, we will learn how to acquire point cloud data from a Dinast camera.
PCL Dinast捕获器框架
在本教程中,我们将学习如何从Dinast相机获取点云数据。
从Ensenso相机抓取点云
在本教程中,我们将学习如何从IDS-Imaging Ensenso摄像机获取点云数据。
davidSDK扫描仪捕获点云/网格
在本教程中,我们将学习如何从davidSDK扫描仪获取点云或网格数据。
从DepthSense相机抓取点云
在本教程中,我们将学习如何在Linux和Windows平台上的PCL中安装配置和使用DepthSense摄像机。
KeyPoint Tutorials
如何从深度图像中提取NARF(Noraml Alighed Radial Feature)关键点
在本教程中,我们将学习如何从深度图像中提取NARF关键点。
TestCode : examples/official/keypoints/narf_keypoint_extraction.py
点云数据主要是表征目标表面的海量点集合,并不具备传统实体网格数据的几何拓扑信息。点云处理中最核心的问题就是建立离散点间的拓扑结构。
划分空间的索引结构有:k-d tree,八叉树、四叉树、BSP树、KDB树,R树,R+树等;
利用kdtree【k-维树】和octree【八叉树】 对海量点云进行高效压缩存储与管理;
K近邻搜索操作的框架是基于FLANN(Fast Library For Approximate Nearest Neighbors)。
KdTree Tutorials
如何使用KdTree进行搜索
在本教程中,我们将学习如何使用最近邻方法搜索k-d树。
TestCode : examples/official/kdtree/kdtree_search.py
用k-d tree找到具体点或空间位置的k近邻
kdtree.py
KdTree 也称为K维树,用来组织表示K维空间中的点集合。
通常只在三个维度中处理,因此可称为3维k-d树。
KdTree、 Octree(八叉树),都是点云数据中索引的一种,为了快速索引以及无损的压缩点云而设计的。
体素内近邻搜索 (Neighbors with Voxel Search) 它把查询点所在的体素中的其他点的索引作为查询结果返回
K近邻搜索(K Nearest Neighbor Serach)
半径内近邻搜索(Neighbor with Radius Search)
Octree Tutorials
点云压缩(Compression)
In this tutorial, we will learn how to compress a single point cloud and streams of point clouds.
在本教程中,我们将学习如何压缩单点云和点云流。
基于八叉树(Octrees)的空间划分和搜索操作
在本教程中,我们将学习如何使用八叉树进行空间分区和最近邻居搜索。
TestCode : examples/official/octree/octree_search.py
无序点云的空间变化检测
该教程中,我们将学习使用八叉树来检测点云中的空间变化。
TestCode : examples/official/octree/octree_change_detection.py
cloudB 相比点云 cloudA 发生变化的部分
缺点: 只能探测 cloudA基础上新增的点集,并不能探测cloudA上减少的点集合
RangeImage Tutorials
深度图像(Depth Images),也被称为距离影像(Range Image),是指将图像采集器到场景中各点的距离(深度)值作为像素值的图像,它直接反应了景物可见表面的几何形状,利用它可以很方便地解决3D目标中的许多问题。
如何从点云创建深度图像
本教程演示了如何从点云和给定的传感器位置创建距离图像。
如何从深度图像中提取边框
本教程演示了如何从深度图像中提取边界(从前景到背景的遍历)。
TestCode : examples/official/RangeImage/range_image_border_extraction.py
Recognition Tutorials
3D Object Recognition based on Correspondence Grouping
This tutorial aims at explaining how to perform 3D Object Recognition based on the pcl_recognition module.
基于对应分组的3D对象识别
本教程旨在说明如何基于pcl_recognition模块执行3D对象识别。
隐式形状模型
在本教程中,我们将学习隐式形状模型算法(Implicit Shape Model algorithm)的工作原理以及如何使用它来查找对象中心。
教程:3D对象识别的假设验证(Hypothesis Verification)
本教程旨在通过验证杂乱和严重遮挡的3D场景中的模型假设,来说明如何在杂乱的场景中进行3D对象识别。
Registration Tutorials(配准教程)
PCL注册API
在本文中,我们描述了点云注册API及其模块:点相关性(Point correspondences)的估计和拒绝,以及刚性变换(rigid transformations)的估计。
如何使用迭代最近点算法(iterative closest point algorithm)
本教程提供了一个示例,说明如何使用迭代最近点算法来查看一个点云是否只是另一个点云的刚性转换。
TestCode : examples/official/Registration/iterative_closest_point.py
如何增量注册云对
本文档演示了使用迭代最接近点算法以逐个递增地注册一系列点云的过程。
交互式迭代最近点
本教程将教您如何构建交互式ICP程序。
如何使用正态分布变换(Normal Distributions Transform)
本文档演示了使用正态分布变换算法来注册两个大点云。
TestCode : examples/official/Registration/normal_distributions_transform.py
手持式小型物品扫描仪
本文档说明了如何使用手持式扫描仪应用程序通过RGB-D相机获取小物体的彩色模型。
刚性物体的位姿估计(Robust pose estimation of rigid objects)
在本教程中,我们展示了如何在具有杂波和遮挡的(clutter and occlusions)场景中找到刚体的对齐姿势。
TestCode : examples/official/Registration/alignment_prerejective.py
Sampleconsensus Tutorials(样本教程)
如何使用随机采样一致性模型(Random Sample Consensus model)
在本教程中,我们学习如何将RandomSampleConsensus与平面模型一起使用,以获取适合该模型的点云。
TestCode : examples/official/SampleConsensus/random_sample_consensus.py
python-pcl 随机采样一致性算法支持的类型: 平面、线、圆柱体、球体、
SampleConsensusModel
SampleConsensusModelCylinder 圆柱体
SampleConsensusModelLine 线
SampleConsensusModelPlane 平面
SampleConsensusModelRegistration
SampleConsensusModelSphere 球体
SampleConsensusModelStick 用户给定范围的线(A stick is a line with an user given minimum/maximum width. )
segmentation Tutorials
Plane model segmentation(平面模型分割)
在本教程中,我们将学习如何从给定的点云数据集中分割任意(arbitrary)平面模型。
TestCode : examples/official/Segmentation/Plane_model_segmentation.py
圆柱模型分割(Cylinder model segmentation)
在本教程中,我们将学习如何从给定的点云数据集中分割任意圆柱模型。
TestCode : examples/official/Segmentation/cylinder_segmentation.py
检索出一个圆柱体的牛奶盒子。
欧氏聚类提取(Euclidean Cluster Extraction)
在本教程中,我们将学习如何使用pcl::EuclideanClusterExtraction类提取欧几里德簇。
TestCode : examples/official/Segmentation/cluster_extraction.py
基于区域增长的分割(Region growing segmentation)
在本教程中,我们将学习如何使用区域增长分割算法。
基于颜色的区域增长分割(Color-based region growing segmentation)
在本教程中,我们将学习如何使用基于颜色的区域增长分割算法。
最小割集的分割(Min-Cut Based Segmentation)
在本教程中,我们将学习如何使用基于最小割集的分割算法。
条件欧氏聚类(Conditional Euclidean Clustering)
本教程介绍如何在PCL中使用条件欧几里德聚类:一种基于欧几里德距离和用户自定义条件的对点进行聚类的分割算法。
基于正态差分的分割(Difference of Normals Based Segmentation)
在本教程中,我们将学习如何使用法线的差异特征(the difference of normals feature)进行分割。
点云聚类成超体素的理论基础(Clustering of Pointclouds into Supervoxels - Theoretical primer)
在本教程中,我们将演示如何将点云分解为中级超体素表示。
基于渐进形态滤波分割的地面回波识别(Identifying ground returns using ProgressiveMorphologicalFilter segmentation)
在本教程中,我们将演示如何将点云分割为地面和非地面返回。
使用ModelOutlierRemoval模型过滤点云(Filtering a PointCloud using ModelOutlierRemoval)
本教程介绍如何使用SAC模型从点云中提取点。
surface Tutorials(曲面重建教程)
根据重建曲面和数据点云之间的关系可将曲面重建分为俩大类: 插值法和逼近法。使得重建曲面是原始点集的一个逼近。
泊松重建、MC重建、Ear Clipping(三角化算法)
ConvexHull 凸包算法。在一个实数向量空间中,对于给定集合X,所有包含X的凸集的交集S被称为X的凸包。应用:二维的面积计算,三维的体积估计应用。
Ear Clipping(三角化算法):是一个把多边形三角化的算法。多边形的一个顶点和相邻俩个顶点构成一个三角形,并且其内部不存在多边形的顶点,切掉,切下来的就称之为ear。循环这个过程,切下去,一个多边形被分为多个三角形。
surface : 点云平滑、重采样、建立凸包、快速点云三角化等算法。
基于多项式平滑点云和法线估计的曲面重建(Smoothing and normal estimation based on polynomial reconstruction)
TestCode : examples/official/Surface/resample.py
原始点云图:
处理后的点云:
在本教程中,我们将学习如何构造和运行移动最小二乘(MLS Moving Least Squares)算法以获得平滑的XYZ坐标和法线。
在平面模型上构建凸凹多边形(Construct a concave or convex hull polygon for a plane model)
在本教程中,我们将学习如何为平面所支持的一组点计算简单的2D凹面或凸面船体多边形。
TestCode : examples/official/Surface/concave_hull_2d.py
无序点云的快速三角剖分(Fast triangulation of unordered point clouds)
在本教程中,我们将学习如何在基于局部邻域的投影上,使用法线在点云上运行贪心三角剖分算法以获得三角形网格。
将修剪的B样条曲线拟合到无序点云(Fitting trimmed B-splines to unordered point clouds)
在本教程中,我们将学习如何通过拟合修剪的B样条曲线从无序点云重构平滑表面。