主要内容

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]。x

浮动顶点[1].y

浮动顶点[1]还是z

浮动顶点[2]。x

浮动顶点[2].y

浮动顶点[2]还是z

...

浮动顶点[9200]。x

浮动顶点[9200].y

浮动顶点[9200]还是z

通常,每个元素的属性数据一次存储一个元素。

<属性1><属性2>…<属性N>元素[1]

<属性1><属性2>…<属性N>元素[2]

...

列表类型属性以一个计数开始存储,然后是一个标量列表。例如,“face”元素类型具有列表属性“vertex_indexes”,具有uchar计数和int标量类型。

uchar

int面对[1].vertex_indices [1]

int面对[1].vertex_indices [2]

int面对[1].vertex_indices [3]

...

int面对[1].vertex_indices[数]

uchar

int面对[2].vertex_indices [1]

int面对[2].vertex_indices [2]

int面对[2].vertex_indices [3]

...

int面对[2].vertex_indices[数]

...

常用元素和属性

尽管PLY格式可以灵活地定义多种类型的元素和属性,但程序之间需要理解一组通用的元素,以通信通用的3d数据类型。Turk建议程序应该尝试使元素和属性名称成为标准。

所需核心属性 元素 财产 数据类型 属性描述
顶点 x 浮动 xyz坐标
y 浮动
z 浮动
nx 浮动 xyz正常的
纽约 浮动
新西兰 浮动
红色的 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 浮动 消光系数

另请参阅

|