在點雲庫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文由「標頭檔案 + 點雲資料」構成,標頭檔案宣告了該點雲資料集的基本特性。下面以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
指定pcd檔案的版本,由0.7可知該點雲資料集是0.7版本的。
version 0.7 //pcd版本號為0.7版
指定本點雲資料集中任意乙個點可以有的維度資訊和其他附加資訊。如:fields x y z 指每個點都有xyz三個維度資訊,fields x y z rgb 指每個點除了xyz維度資訊外還有顏色資訊等。
fields x y z //該資料集中包含每乙個點的xyz緯度資訊
儲存每個維度資訊占用的位元組數(byte)。1指用char型資料儲存維度資訊,2指用short型資料儲存維度資訊,4指用int或float型資料儲存維度資訊,8指用double型資料儲存維度資訊。
size 4 4 4 //x y z每個維度均占用4個位元組
用字元指定每乙個維度的資料型別。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
每個維度包含的元素個數。
count 1 1 1 //x y z每個維度均包含1個元素
點雲資料集可分為有序資料集和無序資料集兩種。有序資料集類似矩陣,有行列之分,無序資料集則無行列之分。根據資料集是否有序,width由不同的含義。
對有序資料集而言:表示資料集的寬度(每行點的數目);
對於無序資料集而言:表示資料集中點的總數(和下面的points一樣)。
對有序資料集而言:表示資料集的高度(行數);
對於無序資料集而言:被設定為1,用於宣告乙個資料集是否有序。
//該資料集為無序資料集,共有35947個點
width 35947
height 1
資料集中點雲的獲取視點。視點資訊被指定為「平移(txtytz) + 四元數(qwqxqyqz)」,預設值是:viewpoint 0 0 0 1 0 0 0
viewpoint 0 0 0 1 0 0 0 //資料集的獲取視點
點雲中點的總數,從0.7版本就開始顯得有點多餘,可能會在後續版本中捨去這個引數。
points 35947 //該資料集中共有35947個點
指定儲存點雲資料的資料儲存格式:ascll碼或二進位制資料。
data ascii //該資料集用ascll碼儲存資料
以ascll碼儲存的點雲資料,每乙個點佔據一行,「nan」表示不存在或非法的資料。
-1.10698 3.272394 -0.447241
-1.80195 3.367094 -0.704211
-4.12496 5.602794 2.824819
......
#include #include #include int main()
std::cout << "loaded"
<< cloud->points.size()
<< "data points from rabbit.pcd with the following fields: "
<< std::endl;
//for (size_t i = 0; i < cloud->points.size(); i++) 顯示所有的點
//顯示前5個點
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檔案格式解讀及手動生成
起因是在python下處理點雲資料比較麻煩,對於一些深度學習模型輸出的點雲處理結果,想在c 下使用pcl庫進行後處理,所以考慮到如何將任意的xyz資料輸出為.pcd檔案,然後使用pcl庫讀取.pcd檔案來處理點雲。下面的內容分析了pcd檔案的字首格式和含義。1.pcd版本 在點雲庫pcl 1.0發布...
ZIP檔案格式詳解
乙個 zip 檔案的普通格式 乙個 zip 檔案由三個部分組成 壓縮原始檔資料區 壓縮源檔案目錄區 壓縮源檔案目錄結束標誌 1 壓縮原始檔資料區 在這個資料區中每乙個壓縮的原始檔 目錄都是一條記錄,記錄的格式如下 檔案頭 檔案資料 資料描述符 a 檔案頭結構 組成 長度 檔案頭標記 4 bytes ...