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:56mtllib 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 verticesvn 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 normalsvt 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 coordsg 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:56newmtl 01___DefaultNs 10.0000Ni 1.5000d 1.0000Tr 0.0000Tf 1.0000 1.0000 1.0000 illum 2Ka 0.5882 0.5882 0.5882Kd 0.5882 0.5882 0.5882Ks 0.0000 0.0000 0.0000Ke 0.0000 0.0000 0.0000map_Ka C:\Users\uux\Documents\3dsMax\sceneassets\images\BWom0001-M3-Body-D.jpgmap_Kd C:\Users\uux\Documents\3dsMax\sceneassets\images\BWom0001-M3-Body-D.jpg

pcd,obj,mtl文件格式解析相关推荐

  1. 材质库文件 .mtl文件格式解析

    .mtl文件(Material Library File)是材质库文件,描述的是物体的材质信息,ASCII存储,任何文本编辑器可以将其打开和编辑.一个.mtl文件可以包含一个或多个材质定义,对于每个材 ...

  2. obj文件格式与mtl文件格式

    .obj文件格式与.mtl文件格式 最近在学习obj文件格式,上网查了些资料,很难找到比较全面的文章,尤其是对.mtl文件的说明甚少.今天把最近搜索的资料整合了一下. 这里的obj文件格式指的是Wav ...

  3. cfile清空文件内容_编译-链接-加载 :ELF文件格式解析

    摘要:对于C++的初学者,经常在程序的编译或者加载过程中遇到很多错误,类似undefined reference to ... 和 GLIBCXX_3.4.20 not found 等.这些错误都涉及 ...

  4. THREEJS导入外部OBJ+MTL后内存优化

    背景 近期做一个关于石油化工的3D数字孪生项目,模型均为客户那边提供,模型文件是obj+mtl+jpg组合.因为有较多局部控制动画,所以建模被要求拆分成多个obj模型,然后在场景中自动组合使用. 现象 ...

  5. envi读取格式ang 还是mtl,mtl文件格式

    "usemtl"指定了材质之后,以后的面都是使用这一材质,直到遇到下一个"usemtl"来指定新的材质. 3.2 OBJ 格式示例举例说明 OBJ 的文件格式. ...

  6. Android init.rc文件格式解析

    /****************************************************************************** Android init.rc文件格式解 ...

  7. 【Android 逆向】Android 逆向方法 ( 静态逆向解析 | 函数调用分析 | 动态运行跟踪 | 运行日志分析 | 文件格式解析 | 敏感信息分析 | 网络信息监控 | 环境伪装模拟 )

    文章目录 一.Android 逆向方法 1.静态逆向解析 2.函数调用分析 3.动态运行跟踪 4.运行日志分析 5.文件格式解析 6.敏感信息分析 7.网络信息监控 8.软件动态调试 9.环境伪装模拟 ...

  8. gcc 删除elf_ELF文件格式解析器 原理 + 代码

    本文为看雪论坛精华文章 看雪论坛作者ID:菜鸟m号 附件链接:[原创] ELF文件格式解析器 原理 + 代码 写在前面: 读<Linux二进制>,发现作者对 ELF文件格式部分并没有做详细 ...

  9. mp4文件格式解析(一)

    原文地址:mp4文件格式解析(一)作者:可下人间 目前MP4的概念被炒得很火,也很乱.最开始MP4指的是音频(MP3的升级版),即MPEG-2 AAC标准.随后MP4概念被转移到视频上,对应的是MPE ...

最新文章

  1. 希捷硬盘读取固件区数据
  2. C语言中typedef的六种用法
  3. oracle可以迁徙mysql吗_项目oracle迁徙到mysql的小总结
  4. 将VC++6.0的代码迁移到VS2005常见问题总结(Window核心编程第五版以前代码在VS2005无法编译的解决方案)...
  5. xml分析错误:注释未终止_错误:C中的未终止注释(无效的注释块) 常见的C程序错误...
  6. mysql 联合索引的命中规则_可能是全网最好的MySQL重要知识点/面试题总结
  7. cython php,【整理】Cython返回C/C++ struct类型数据 | 勤奋的小青蛙
  8. php操作cookie_php设置cookie【三种方案】
  9. async和await用法
  10. java 001 002_java笔记0x002:操作符
  11. windows环境下vue开发环境搭建
  12. pip install 安装requirements.txt经常报错解决方法
  13. 大一c语言挂科分数烟台大学,知乎烟大 | 在烟大挂科是一种什么体验
  14. 基于EAST+CRNN实现集装箱箱号识别
  15. 关于用户 email 邮件地址是否允许有加号的问题
  16. 程序员面试智力题(六)
  17. redis中使用lua脚本
  18. Cytoscape安装及使用
  19. Python计算机视觉——第四章 照相机模型与增强现实
  20. Mac本PS滤镜库无法使用的解决方案

热门文章

  1. ECS 7天实践训练营day5-安装Linux服务器面板管理工具
  2. 讲道理 | 特征值和特征向量意义
  3. SpringBoot项目入门,使用Eclipse创建Springboot项目
  4. 移动了我的文档,但剩下了一个Documents文件夹,怎么也删不掉,怎么办?
  5. 普通物理拾遗----热学
  6. background多背景
  7. English trip V1 - 11.What's That? 那是什么?Teacher:Patrick Key:There's/There are
  8. 信道容量的迭代算法实现
  9. vcs 覆盖率收集2——覆盖率选项 + 合并覆盖率
  10. Pico VR 一体机初测