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中文官网

格式说明

字段说明备注
VERSIONPCL版本
FIELDS指定一个点可以有的每一个维度和字段的名字
FIELDS x y z坐标
FIELDS x y z rgb坐标+颜色
FIELDS x y z normal_x normal_y normal_z坐标+法线
SIZE用字节数指定每一个维度的大小
unsigned char/ char1字节
unsigned short/ short2字节
unsigned int/ int/ float4字节
double8字节
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

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

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

mtl文件解析

mtl文件是obj文件附带的材质文件,也是以纯文本保存的。

格式说明

常用格式说明

对象说明
Kaambient color
Kddiffuse color
Ksspecular color
d/Tr透明
illum照明模型
map_Kaambient map
map_Kddiffuse map,大部分情况与ambient map相同
map_Ksspecular map
Nsshininess 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
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值