PCD檔案格式詳解及在PCL下讀取PCD檔案

2022-04-07 17:21:20 字數 2678 閱讀 3498

在點雲庫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 ...