pcd,obj,mtl檔案格式解析
pcd,obj,mtl檔案格式解析
pcd檔案解析
PCD檔案格式並非白費力氣地做重複工作,現有的檔案結構因本身組成的原因不支援由PCL庫引進n維點型別機制處理過程中的某些擴充套件,而PCD檔案格式能夠很好地補足這一點。PCD不是第一個支援3D點雲資料的檔案型別,尤其是計算機圖形學和計算幾何學領域,已經建立了很多格式來描述任意多邊形和鐳射掃描器獲取的點雲。包括下面幾種格式:
- PLY是一種多邊形檔案格式,由Stanford大學的Turk等人設計開發;
- STL是3D Systems公司建立的模型檔案格式,主要應用於CAD、CAM領域;
- OBJ是從幾何學上定義的檔案格式,首先由Wavefront Technologies開發;
- X3D是符合ISO標準的基於XML的檔案格式,表示3D計算機圖形資料;
- 其他許多種格式。
—-摘自PCL中文官網
格式說明
欄位 | 說明 | 備註 |
---|---|---|
VERSION | PCL版本 | |
FIELDS | 指定一個點可以有的每一個維度和欄位的名字 | |
FIELDS x y z | 座標 | |
FIELDS x y z rgb | 座標+顏色 | |
FIELDS x y z normal_x normal_y normal_z | 座標+法線 | |
SIZE | 用位元組數指定每一個維度的大小 | |
unsigned char/ char | 1位元組 | |
unsigned short/ short | 2位元組 | |
unsigned int/ int/ float | 4位元組 | |
double | 8位元組 | |
TYPE | 用一個字元指定每一個維度的型別 | |
I | 有符號char,short,int | |
U | 無符號char,short,int | |
F | 浮點型別 | |
COUNT | 指定每一個維度包含的元素數目。預設情況下,如果沒有COUNT,所有維度的數目被設定成1 | |
WIDTH | 用點的數量表示點雲資料集的寬度 | |
1.它能確定無序資料集的點雲中點的個數 | ||
2.它能確定有序點雲資料集的寬度 | ||
HEIGHT | 用點的數目表示點雲資料集的高度 | |
1.它表示有序點雲資料集的高度 | ||
2.對於無序資料集它被設定成1 | ||
VIEWPOINT | 指定資料集中點雲的獲取視點 | |
視點資訊被指定為平移(txtytz)+四元數(qwqxqyqz)。 | 預設 VIEWPOINT 0 0 0 1 0 0 0 | |
POINTS | 指定點雲中點的總數 | |
DATA | 指定儲存點雲資料的資料型別 | |
ascii和二進位制 | ||
具體的資料 |
例子
有序點雲例子
- WIDTH 640
- 像影象一樣的有序結構,有640行和480列,
- HEIGHT 480
- 這樣該資料集中共有640*480=307200個點
無序點雲例子
- WIDTH 307200
- HEIGHT 1
- 有307200個點的無序點雲資料集
xyzrgb
# .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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
xyz
# .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 5
HEIGHT 1
VIEWPOINT 0 0 0 1 0 0 0
POINTS 5
DATA ascii
1.28125 577.09375 197.9375
828.125 599.03125 491.375
358.6875 917.4375 842.5625
764.5 178.28125 879.53125
727.53125 525.84375 311.28125
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
obj檔案解析
OBJ檔案是Alias|Wavefront公司為它的一套基於工作站的3D建模和動畫軟體”Advanced Visualizer”開發的一種標準3D模型檔案格式,很適合用於3D軟體模型之間的互導,也可以通過Maya讀寫。比如你在3dsMax或LightWave中建了一個模型,想把它調到Maya裡面渲染或動畫,匯出OBJ檔案就是一種很好的選擇。目前幾乎所有知名的3D軟體都支援OBJ檔案的讀寫。 —引自百度百科
obj檔案是純文字表示的,可以直接讀取,非常方便使用。
格式說明
常用的格式解析
物件 | 說明 |
---|---|
v | 頂點座標 |
vn | 法線座標 |
vt | 紋理座標 |
f | 面,頂點/紋理/法線 |
g | 組 |
s | 光滑組 |
例子
obj檔案的材質用mtl檔案進行儲存,每個f是一個面,分別對應v,vt,vn的索引,按照組來選擇材質,每個組同一個材質,然後根據材質名在mtl檔案中查詢對應的材質。
# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware
# 建立的檔案:22.03.2017 20:29:56
mtllib 5.mtl
#
# object Box001
#
v -1.3354 27.0202 -30.3129
v -1.3354 27.0202 4.4486
v 9.7064 27.0202 -30.3129
v 9.7064 27.0202 4.4486
v 9.7064 -3.2062 4.4486
v -1.3354 -3.2062 4.4486
v 9.7064 -3.2062 -30.3129
v -1.3354 -3.2062 -30.3129
# 8 vertices
vn 0.0000 1.0000 -0.0000
vn 0.0000 -1.0000 -0.0000
vn 0.0000 0.0000 1.0000
vn 1.0000 0.0000 -0.0000
vn 0.0000 0.0000 -1.0000
vn -1.0000 0.0000 -0.0000
# 6 vertex normals
vt 0.0000 1.0000 0.0000
vt 0.0000 0.0000 0.0000
vt 1.0000 1.0000 0.0000
vt 1.0000 0.0000 0.0000
# 4 texture coords
g Box001
usemtl 01___Default
s 2
f 1/1/1 2/2/1 3/3/1
f 4/4/1 3/3/1 2/2/1
s 4
f 5/2/2 6/4/2 7/1/2
f 8/3/2 7/1/2 6/4/2
s 8
f 4/4/3 2/2/3 5/3/3
f 6/1/3 5/3/3 2/2/3
s 16
f 3/4/4 4/2/4 7/3/4
f 5/1/4 7/3/4 4/2/4
s 32
f 1/4/5 3/2/5 8/3/5
f 7/1/5 8/3/5 3/2/5
s 64
f 2/4/6 1/2/6 6/3/6
f 8/1/6 6/3/6 1/2/6
# 12 faces
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
mtl檔案解析
mtl檔案是obj檔案附帶的材質檔案,也是以純文字儲存的。
格式說明
常用格式說明
物件 | 說明 |
---|---|
Ka | ambient color |
Kd | diffuse color |
Ks | specular color |
d/Tr | 透明 |
illum | 照明模型 |
map_Ka | ambient map |
map_Kd | diffuse map,大部分情況與ambient map相同 |
map_Ks | specular map |
Ns | shininess of the material |
例子
# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware
# 建立的檔案:22.03.2017 20:29:56
newmtl 01___Default
Ns 10.0000
Ni 1.5000
d 1.0000
Tr 0.0000
Tf 1.0000 1.0000 1.0000
illum 2
Ka 0.5882 0.5882 0.5882
Kd 0.5882 0.5882 0.5882
Ks 0.0000 0.0000 0.0000
Ke 0.0000 0.0000 0.0000
map_Ka C:\Users\uux\Documents\3dsMax\sceneassets\images\BWom0001-M3-Body-D.jpg
map_Kd C:\Users\uux\Documents\3dsMax\sceneassets\images\BWom0001-M3-Body-D.jpg