起因是在python下處理點雲資料比較麻煩,對於一些深度學習模型輸出的點雲處理結果,想在c++下使用pcl庫進行後處理,所以考慮到如何將任意的xyz資料輸出為.pcd檔案,然後使用pcl庫讀取.pcd檔案來處理點雲。下面的內容分析了pcd檔案的字首格式和含義。
1. pcd版本
在點雲庫pcl 1.0發布之前,pcd檔案格式就已經發展更新了許多版本。這些新舊不同的版本用pcd_vx來編號(例如pcd_v5、pcd_v6和pcd_v7等),分別代表pcd檔案的0.5版、0.6版和0.7版。在pcl中,用到的pcd檔案格式的正式發布是0.7版,即pcd_v7。
2. 檔案格式
pcd文由 「標頭檔案 + 點雲資料」 構成,標頭檔案宣告了該點雲資料集的基本特性。下面以pcd_v7版本的pcd檔案為例,對頭檔案進行介紹。標頭檔案及部分點雲資料如下所示:
# .pcd v0.7 - point cloud data file format
version 0.7
fields x y z
size 4 4 4
type f f f
count 1 1 1
width 35947
height 1
viewpoint 0 0 0 1 0 0 0
points 35947
data ascii
-1.10698 3.272394 -0.447241
-1.80195 3.367094 -0.704211
-4.12496 5.602794 2.824819
下面我們來一句一句進行解讀:
3. version
指定pcd檔案的版本,由0.7可知該點雲資料集是0.7版本的。
version 0.7 //pcd版本號為0.7版
4. fields
指定本點雲資料集中任意乙個點可以有的維度資訊和其他附加資訊。如:fields x y z 指每個點都有xyz三個維度資訊,fields x y z rgb 指每個點除了xyz維度資訊外還有顏色資訊等。
fields x y z //該資料集中包含每乙個點的xyz緯度資訊
5. size
儲存每個維度資訊占用的位元組數(byte)。1指用char型資料儲存維度資訊,2指用short型資料儲存維度資訊,4指用int或float型資料儲存維度資訊,8指用double型資料儲存維度資訊。
size 4 4 4 //x y z每個維度均占用4個位元組
6. type
用字元指定每乙個維度的資料型別。i表示有符號型別:int8(char),int16(short),int32(int);u表示無符號型別:uint8(unsigned char),uint 16(unsigned short),uint32(unsigned int);f表示浮點型float和double。
type f f f //x y z每個維度的均為4位元組的浮點型,即為float
7. count
每個維度包含的元素個數。
count 1 1 1 //x y z每個維度均包含1個元素
8. width
點雲資料集可分為有序資料集和無序資料集兩種。有序資料集類似矩陣,有行列之分,無序資料集則無行列之分。根據資料集是否有序,width由不同的含義。
對有序資料集而言:表示資料集的寬度(每行點的數目);
對於無序資料集而言:表示資料集中點的總數(和下面的points一樣)。
9. height
對有序資料集而言:表示資料集的高度(行數);
對於無序資料集而言:被設定為1,用於宣告乙個資料集是否有序。
//該資料集為無序資料集,共有35947個點
width 35947
height 1
10. viewpoints
資料集中點雲的獲取視點。視點資訊被指定為「平移(txtytz) + 四元數(qwqxqyqz)」,預設值是:viewpoint 0 0 0 1 0 0 0
viewpoint 0 0 0 1 0 0 0 //資料集的獲取視點
11. points
點雲中點的總數,從0.7版本就開始顯得有點多餘,可能會在後續版本中捨去這個引數。
points 35947 //該資料集中共有35947個點
12. data
指定儲存點雲資料的資料儲存格式:ascll碼或二進位制資料。
data ascii //該資料集用ascll碼儲存資料
13. 點雲資料
以ascll碼儲存的點雲資料,每乙個點佔據一行,「nan」表示不存在或非法的資料。
-1.10698 3.272394 -0.447241
-1.80195 3.367094 -0.704211
-4.12496 5.602794 2.824819
......
PCD檔案格式詳解及在PCL下讀取PCD檔案
在點雲庫pcl 1.0發布之前,pcd檔案格式就已經發展更新了許多版本。這些新舊不同的版本用pcd vx來編號 例如pcd v5 pcd v6和pcd v7等 分別代表pcd檔案的0.5版 0.6版和0.7版。在pcl中,用到的pcd檔案格式的正式發布是0.7版,即pcd v7。pcd文由 標頭檔案...
PCL學習之PCD檔案格式
先看一段pcd示例資料 pcd v.7 point cloud data file format version 7 fields x y z rgb size 4 4 4 4 type f f f f count 1 1 1 1 width 213 height 1 viewpoint 0 0 0...
點雲資料pcd檔案簡介
3 總結 點雲資料是指在乙個三維座標系中的一組向量的集合。這些向量通常以x,z三維座標的形式表示,一般主要代表乙個物體的外表面幾何形狀,除此之外點雲資料還可以附帶rgb資訊,即每個座標點的顏色資訊,或者是其他的資訊。在這裡推薦大家都將都將點雲資料儲存為 pcd檔案,因為有pcl這個開源庫專門處理pc...