日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

PCL——(3)PCD(点云数据)文件格式简介

發(fā)布時間:2023/12/19 综合教程 29 生活家
生活随笔 收集整理的這篇文章主要介紹了 PCL——(3)PCD(点云数据)文件格式简介 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

@目錄一、為什么用一種新的文件格式?二、文件格式2.1·VERSION2.2·FIELDS2.3·SIZE2.4·TYPE2.5·COUNT2.6·WIDTH2.7·HEIGHT2.8·VIEWPOINT2.9·POINTS2.10·DATA2.11 實例三、相對其他文件格式的優(yōu)勢打賞支付寶微信

一、為什么用一種新的文件格式?

PCD文件格式并非白費力氣地做重復(fù)工作,現(xiàn)有的文件結(jié)構(gòu)因本身組成的原因不支持由PCL庫引進n維點類型機制處理過程中的某些擴展,而PCD文件格式能夠很好地補足這一點。PCD不是第一個支持3D點云數(shù)據(jù)的文件類型,尤其是計算機圖形學(xué)和計算幾何學(xué)領(lǐng)域,已經(jīng)創(chuàng)建了很多格式來描述任意多邊形和激光掃描儀獲取的點云。包括下面幾種格式:

PLY 是一種多邊形文件格式,由Stanford大學(xué)的Turk等人設(shè)計開發(fā);
STL 是3D Systems公司創(chuàng)建的模型文件格式,主要應(yīng)用于CAD、CAM領(lǐng)域;
OBJ 是從幾何學(xué)上定義的文件格式,首先由Wavefront Technologies開發(fā);
X3D 是符合ISO標準的基于XML的文件格式,表示3D計算機圖形數(shù)據(jù);
/ 其他許多種格式。

以上所有的文件格式都有缺點。這是很自然的,因為它們是在不同時間為了不同的使用目的所創(chuàng)建的,那時今天的新的傳感器技術(shù)和算法都還沒有發(fā)明出來。

二、文件格式

每一個PCD文件包含一個文件頭,它確定和聲明文件中存儲的點云數(shù)據(jù)的某種特性。PCD文件頭必須用ASCII碼來編碼。PCD文件中指定的每一個文件頭字段以及ascii點數(shù)據(jù)都用一個新行(
)分開了,從0.7版本開始,PCD文件頭包含下面的字段:

2.1·VERSION

指定PCD文件版本

2.2·FIELDS

指定一個點可以有的每一個維度和字段的名字。例如:

- FIELDS x y z                           # XYZ data
- FIELDS x y z rgb                       # XYZ + colors
- FIELDS x y z normal_xnormal_y normal_z # XYZ + surface normals
- FIELDS j1 j2 j3                        # moment invariants

2.3·SIZE

用字節(jié)數(shù)指定每一個維度的大小。例如:

unsigned char/char has 1 byte
unsigned short/short has 2 bytes
unsignedint/int/float has 4 bytes
double has 8 bytes

2.4·TYPE

用一個字符指定每一個維度的類型?,F(xiàn)在被接受的類型有:

I –表示有符號類型int8(char)、int16(short)和int32(int);
U – 表示無符號類型uint8(unsigned char)、uint16(unsigned short)和uint32(unsigned int);
F –表示浮點類型。

2.5·COUNT

指定每一個維度包含的元素數(shù)目。例如:
x這個數(shù)據(jù)通常有一個元素,但是像VFH這樣的特征描述子就有308個。實際上這是在給每一點引入n維直方圖描述符的方法,把它們當(dāng)做單個的連續(xù)存儲塊。默認情況下,如果沒有COUNT,所有維度的數(shù)目被設(shè)置成1。

2.6·WIDTH

用點的數(shù)量表示點云數(shù)據(jù)集的寬度。根據(jù)是有序點云還是無序點云,WIDTH有兩層解釋:

1)它能確定無序數(shù)據(jù)集的點云中點的個數(shù)(和下面的POINTS一樣);
2)它能確定有序點云數(shù)據(jù)集的寬度(一行中點的數(shù)目)。
注意:有序點云數(shù)據(jù)集,意味著點云是類似于圖像(或者矩陣)的結(jié)構(gòu),數(shù)據(jù)分為行和列。這種點云的實例包括立體攝像機和時間飛行攝像機生成的數(shù)據(jù)。有序數(shù)據(jù)集的優(yōu)勢在于,預(yù)先了解相鄰點(和像素點類似)的關(guān)系,鄰域操作更加高效,這樣就加速了計算并降低了PCL中某些算法的成本。

例如:WIDTH 640       # 每行有640個點

2.7·HEIGHT

用點的數(shù)目表示點云數(shù)據(jù)集的高度。類似于WIDTH ,HEIGHT也有兩層解釋:

1)它表示有序點云數(shù)據(jù)集的高度(行的總數(shù));
2)對于無序數(shù)據(jù)集它被設(shè)置成1(被用來檢查一個數(shù)據(jù)集是有序還是無序)。

有序點云例子:
WIDTH 640       # 像圖像一樣的有序結(jié)構(gòu),有640行和480列,
HEIGHT 480      # 這樣該數(shù)據(jù)集中共有640*480=307200個點

無序點云例子:
WIDTH 307200
HEIGHT 1        # 有307200個點的無序點云數(shù)據(jù)集

2.8·VIEWPOINT

指定數(shù)據(jù)集中點云的獲取視點(原點)。

VIEWPOINT有可能在不同坐標系之間轉(zhuǎn)換的時候應(yīng)用,在輔助獲取其他特征時也比較有用,例如曲面法線,在判斷方向一致性時,需要知道視點的方位.
視點信息被指定為平移(txtytz)+四元數(shù)(qwqxqyqz)。默認值是:VIEWPOINT 0 0 0 1 0 0 0

2.9·POINTS

指定點云中點的總數(shù)。從0.7版本開始,該字段就有點多余了,因此有可能在將來的版本中將它移除。

例子:
POINTS 307200   #點云中點的總數(shù)為307200

2.10·DATA

指定存儲點云數(shù)據(jù)的數(shù)據(jù)類型。從0.7版本開始,支持兩種數(shù)據(jù)類型:ascii和二進制。

注意:文件頭最后一行(DATA)的下一個字節(jié)就被看成是點云的數(shù)據(jù)部分了,它會被解釋為點云數(shù)據(jù)。

警告:PCD文件的文件頭部分必須以上面的順序精確指定,也就是如下順序:

VERSION、FIELDS、SIZE、TYPE、COUNT、WIDTH、HEIGHT、VIEWPOINT、POINTS、DATA

之間用換行隔開。
數(shù)據(jù)存儲類型

在0.7版本中,.PCD文件格式用兩種模式存儲數(shù)據(jù):

如果以ASCII形式,每一點占據(jù)一個新行:

p_1

p_2

...

p_n

注意:從PCL 1.0.1版本開始,用字符串“nan”表示NaN,此字符表示該點的值不存在或非法等。

如果以二進制形式,這里數(shù)據(jù)是數(shù)組(向量)pcl::PointCloud.points的一份完整拷貝,在Linux系統(tǒng)上,我們用mmap/munmap操作來盡可能快的讀寫數(shù)據(jù),存儲點云數(shù)據(jù)可以用簡單的ascii形式,每點占據(jù)一行,用空格鍵或Tab鍵分開,沒有其他任何字符。也可以用二進制存儲格式,它既簡單又快速,當(dāng)然這依賴于用戶應(yīng)用。ascii格式允許用戶打開點云文件,使用例如gunplot這樣的標準軟件工具更改點云文件數(shù)據(jù),或者用sed、awk等工具來對它們進行操作。

2.11 實例

下面貼出了PCD文件的一個片段??纯此慕M成!

# .PCD v.7 - Point Cloud Data file format

VERSION .7

FIELDS x y z rgb

SIZE 4 4 4 4

TYPE F FFF

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

三、相對其他文件格式的優(yōu)勢

用PCD作為(另一種)文件格式可能被看成是沒有必要的一項工作。但實際中,情況不是這樣的,因為上面提到的文件格式無一能提高PCD文件的適用性和速度。PCD文件格式包括以下幾個明顯的優(yōu)勢:

1)存儲和處理有序點云數(shù)據(jù)集的能力——這一點對于實時應(yīng)用,例如增強現(xiàn)實、機器人學(xué)等領(lǐng)域十分重要;

2)二進制mmap/munmap數(shù)據(jù)類型是把數(shù)據(jù)下載和存儲到磁盤上最快的方法;

3)存儲不同的數(shù)據(jù)類型(支持所有的基本類型:char,short,int,float,double)——使得點云數(shù)據(jù)在存儲和處理過程中適應(yīng)性強并且高效,其中無效的點的通常存儲為NAN類型;

4)特征描述子的n維直方圖——對于3D識別和計算機視覺應(yīng)用十分重要。

5)另一個優(yōu)勢是通過控制文件格式,我們能夠使其最大程度上適應(yīng)PCL,這樣能獲得PCL應(yīng)用程序的最好性能,而不用把一種不同的文件格式改變成PCL的內(nèi)部格式,這樣的話通過轉(zhuǎn)換函數(shù)會引起額外的延時。

打賞

碼字不易,如果對您有幫助,就打賞一下吧O(∩_∩)O

支付寶

微信

總結(jié)

以上是生活随笔為你收集整理的PCL——(3)PCD(点云数据)文件格式简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。