PCL(PointCloudLibrary)——是一個的模塊化的現代C++模板庫。php
其基於如下第三方庫:Boost、Eigen、FLANN、VTK、CUDA、OpenNI、Qhull,實現點雲相關的獲取、濾波、分割、配準、檢索、特徵提取、識別、追蹤、曲面重建、可視化等。算法
PCL包括多個子模塊庫數據結構
重要的PCL模塊庫有:模塊化
1.過濾器Filters函數
濾波是一種信號處理,其特徵是對信號某些方面的徹底或部分抑制。spa
用於3D點雲數據濾波應用,包含異常值和噪聲消除算法。code
2.特徵Featuresblog
特徵庫包括數據結構和從點雲創建3D特徵的方法。3D特徵爲對於特定點其周圍的可用的幾何關係信息,如特定的三維點、位置或空間。原型
普遍使用的幾何點特徵的示例是底層表面在查詢點處的估計曲率和法線p
。it
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