先看一段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 1 0 0 0
points 213
data ascii
0.93773 0.33763 0 4.2108e+06
0.90805 0.35641 0 4.2108e+06
0.81915 0.32 0 4.2108e+06
0.97192 0.278 0 4.2108e+06
0.944 0.29474 0 4.2108e+06
0.98111 0.24247 0 4.2108e+06
0.93655 0.26143 0 4.2108e+06
0.91631 0.27442 0 4.2108e+06
0.81921 0.29315 0 4.2108e+06
0.90701 0.24109 0 4.2108e+06
0.83239 0.23398 0 4.2108e+06
0.99185 0.2116 0 4.2108e+06
0.89264 0.21174 0 4.2108e+06
0.85082 0.21212 0 4.2108e+06
0.81044 0.32222 0 4.2108e+06
1.檔案頭
每個pcd檔案包含乙個檔案頭用於確定和宣告檔案中儲存的點雲資料的某些特性,檔案頭必須使用ascii編碼,檔案頭的字段之間必須使用新行隔開。
(1)version:指定pcd檔案版本(#為注釋語句)
(2)fileds:指定點雲資料每個點的字段(描述性特徵)
(3)size:每個字段資料的儲存空間大小
(4)type:每個字段資料型別:
i -- 有符號型別,int8(char),int16(short),int32(int)
u -- 無符號型別,uint8(unsigned char), uint16(unsigned short),uint32(unsigned int)
f -- 浮點型,float
(5)count:每個字段資料報含的元素個數,例如表示位置資訊的xyz欄位count都是1,但是像vfh特徵描述子有308個,即count值為308(不進行設定的話預設為1)
(6)width:根據點雲是有序還是無序代表兩種含義
在有序點雲中表示一行資料中點的數目,在無序點雲中表示所有點的個數(示例中為無序點雲資料,且為了節約篇幅省去了剩下的資料)。有序點雲指類似於畫素或矩陣,點之間的鄰接關係表示明確的點雲。
(7)height:根據點雲是否有序分別代表兩種漢含義
對於有序點雲代表資料集的行數,無序點雲設定為1
(8)viewport:點雲資料集的獲取視點,在獲取其他特徵時會用到(比如確定發現方向),由3個偏移量+四元數組成
(9)points:點的總個數
(10)data:資料的儲存型別,有ascii和二進位制兩種
data的下一位元組資料就是點雲資料了,檔案頭的資訊必須按照以上順序展開且使用換行分隔
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學習(1) 讀取並顯示PCD檔案
之前也斷斷續續看過很多關於pcl的 但是沒有自己動手寫過,真的自己動手寫才發現有很多問題,特此記錄一下學習過程中的 想要有進步所有 還是要手打,不能複製貼上啊!用的pcd檔案是自己之前用結構光的 掃瞄生成的pcd檔案,環境是vs2017 pcl1.8.1 以下為源 include include i...
點雲PCD檔案格式解讀及手動生成
起因是在python下處理點雲資料比較麻煩,對於一些深度學習模型輸出的點雲處理結果,想在c 下使用pcl庫進行後處理,所以考慮到如何將任意的xyz資料輸出為.pcd檔案,然後使用pcl庫讀取.pcd檔案來處理點雲。下面的內容分析了pcd檔案的字首格式和含義。1.pcd版本 在點雲庫pcl 1.0發布...