PLY格式
1.0版PLY格式,也称为斯坦福三角格式,定义了一种灵活而系统的3D数据存储方案。ASCII头通过定义“元素”来指定文件中的数据,每个元素都有一组“属性”。许多PLY文件只有顶点和面数据,但是,也可以包括其他数据,如颜色信息、顶点法线或特定于应用程序的属性。
请注意
计算机视觉工具箱™点云数据功能只支持(x,y,z)坐标、法线和颜色属性。金宝app
文件头
示例标题(斜体文本为注释):
厚度 |
文件标识 |
格式为binary_big_endian 1.0 |
指定数据格式和版本 |
元素顶点9200 |
定义“顶点”元素 |
属性float x |
|
属性浮动y |
|
属性float z |
|
元素面18000 |
定义face元素 |
属性列表uchar int vertex_indexes |
|
end_header |
数据从这一行开始 |
该文件以“ply”开头,表示它是一个ply文件。标头还必须包含带有语法的格式行
格式<数据格式> |
金宝app支持的数据格式是“ascii”存储为文本的数据,“binary_little_endian”和“binary_big_endian”存储为二进制数据(其中小/大endian指的是多字节数据的字节顺序)。元素定义以“Element”行开始,后面跟着元素属性定义
>文件中的元素<元素名称><编号 |
|
属性<数据类型><属性名1> |
|
属性<数据类型><属性名2> |
|
属性<数据类型><属性名3> . |
|
... |
例如,"element vertex 9200"定义了一个元素"vertex",并指定9200个顶点存储在文件中。每个元素定义后面都跟着该元素的属性列表。有两种属性,标量属性和列表属性。标量属性定义具有以下语法
属性<数据类型><属性名> |
<数据类型>在哪里
的名字 | 类型 |
---|---|
字符 | (8位)字符 |
uchar | (8位)无符号字符 |
短 | (16位)短整数 |
ushort | (16位)无符号短整数 |
int | (32位)的整数 |
使用uint | (32位)无符号整数 |
浮动 | (32位)单精度浮点数 |
双 | (64位)双精度浮点数 |
为了系统之间的兼容性,请注意每种数据类型中的位数必须一致。列表类型存储有一个计数,后面跟着一个标量列表。列表属性的定义语法为
属性列表<计数数据类型><数据类型><属性名> |
例如,
属性列表uchar int vertex_index |
定义vertex_index属性以字节计数开始存储,后面跟着整数值。这对于存储多边形连接性非常有用,因为它可以灵活地在每个面中指定可变数量的顶点索引。
标头还可以包括注释。注释的语法就是以“comment”开头的一行,后面跟着一行注释:
评论<评论文本> |
注释可以提供关于数据的信息,如文件的作者、数据描述、数据源和其他文本数据。
数据
在标头之后,元素数据存储为ASCII或二进制数据(由标头中的格式行指定)。在头文件之后,数据按照定义元素和属性的顺序存储。首先,存储第一个元素类型的所有数据。在示例头中,第一个元素类型是“顶点”,文件中有9200个顶点,并具有float属性。x”、“y,"和"z”。
|
|
|
|
|
|
... |
|
|
|
通常,每个元素的属性数据一次存储一个元素。
<属性1><属性2>…<属性N>元素[1] |
<属性1><属性2>…<属性N>元素[2] |
... |
列表类型属性以一个计数开始存储,然后是一个标量列表。例如,“face”元素类型具有列表属性“vertex_indexes”,具有uchar计数和int标量类型。
|
|
|
|
... |
|
|
|
|
|
... |
|
... |
常用元素和属性
尽管PLY格式可以灵活地定义多种类型的元素和属性,但程序之间需要理解一组通用的元素,以通信通用的3d数据类型。Turk建议程序应该尝试使元素和属性名称成为标准。
所需核心属性 | 元素 | 财产 | 数据类型 | 属性描述 |
---|---|---|---|---|
✓ | 顶点 | x | 浮动 |
x,y,z坐标 |
✓ | y | 浮动 |
||
✓ | z | 浮动 |
||
nx | 浮动 |
x,y,z正常的 | ||
纽约 | 浮动 |
|||
新西兰 | 浮动 |
|||
红色的 | uchar |
顶点的颜色 | ||
绿色 | uchar |
|||
蓝色的 | uchar |
|||
α | uchar |
透明度 | ||
material_index | int |
材料列表的索引 | ||
脸 | vertex_indices | int的列表 | 顶点的索引 | |
back_red | uchar |
背面的颜色 | ||
back_green | uchar |
|||
back_blue | uchar |
|||
边缘 | vertex1 | int |
顶点索引 | |
vertex2 | int |
其他顶点的索引 | ||
crease_tag | uchar |
细分表面的折痕 | ||
材料 | 红色的 | uchar |
材料的颜色 | |
绿色 | uchar |
|||
蓝色的 | uchar |
|||
α | uchar |
透明度 | ||
reflect_coeff | 浮动 |
反射光量 | ||
refract_coeff | 浮动 |
折射光的量 | ||
refract_index | 浮动 |
折射率 | ||
extinct_coeff | 浮动 |
消光系数 |