點雲PCD檔案格式解讀及手動生成

2021-09-03 02:00:18 字數 2533 閱讀 7671

起因是在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...