Open3d 常用数据格式说明:pcd, ply, stl等

您所在的位置:网站首页 kindlek6支持什么格式 Open3d 常用数据格式说明:pcd, ply, stl等

Open3d 常用数据格式说明:pcd, ply, stl等

2024-05-28 03:02| 来源: 网络整理| 查看: 265

文章目录 可读格式plystl

可读格式

Open3d支持的可以直接打开的点云格式如下

行格式说明xyz[x,y,z]空间直角坐标xyzn[x, y, z, nx, ny, nz]直角坐标和法线向量xyzrgb[x, y, z, r, g, b]直角坐标和[0,1]区间的颜色pts含头文件见详情ply图形格式见详情pcd点云数据见PCL文件读写stl三角面数据见详情

其中,pts的第一行是点数,其他行的格式可以为

[x, y, z, i, r, g, b],[x, y, z, r, g, b][x, y, z, i][x, y, z]

其中,r,g,b格式为uint8。

ply

ply格式即Polygon File Format,又称斯坦福三角形文件,其内容分为文件头和数据,其中文件头通过ASCII编码,数据可以采取ASCII或者二进制的形式。

其文件头必以ply为首行,第二行为文件格式,一般来说有三种写法,分别表示ASCII,或者大小端序存放的二进制文件。

format ascii 1.0 format binary_little_endian 1.0 format binary_big_endian 1.0

ply文件支持注释,凡是以comment为首的行,都会被当作注释处理。

通过element和property关键字,可以描述元素属性,其中element表示元素,property表示属性,一个元素往往有多种属性,故而其写法类似下面这样

element property property property

data_type为数据类型,支持主要的C语言类型,包括两种写法,一种指定数据位数,包括int8 uint8 int16 uint16 int32 uint32 float32 float64,另一种不指定数据位数,包括char uchar short ushort int uint float double。

以一个正方体为例,每个顶点需要3个小数表示坐标,另外需要3个无符号8位整数表示颜色,则其写法为

element vertex 8 property float x property float y property float z property uchar blue property uchar green property uchar red

如果用面来描述这个正方体,则可写为

element face 6 property list uchar int vertex_indices

在规定了一系列的数据之后,最后文件头以end_header结尾。

stl

STL即StereoLithography,是立体激光雕刻的通用格式,存储的数据内容为三角面,数据格式分为ASCII和二进制两种。

其中,二进制STL的起始84个字节为文件头,用于描述3D模型的文件名(前80字节)和三角面个数(后4字节)。

在数据部分,以50个字节为一个三角面,逐个给出每个三角面片的几何信息。50个字节包括

三角面片的法矢量 3x4三个顶点坐标 3x3x4三角面属性 2

ASCII格式则按行写入数据,每个三角面由7行数据构成,内容与二进制的50个字节相同,其书写结构大致为

solid filename stl //自定义文件头 facet normal x y z //法向量 outer loop vertex x y z //第一个顶点坐标 vertex x y z //第二个顶点坐标 vertex x y z //第三个顶点坐标 endloop endfacet //完成一个三角面片定义 …… endsolid filename stl ∥整个STL文件定义结束

最后,STL对三角面的组织并非毫无规律的,其遵循下面几个原则

共顶点:相邻三角面必须有两个共同顶点取向规则 单个面片法向量符合右手法则且指向实体外面充满规则 小三角面片必须布满三维模型的所有表面,不得遗漏取值规则 顶点坐标值必须非负,即STL实体在坐标系的第一象限

此外,还支持obj、glb等格式,由于二者相对来说比较复杂,故放在后续介绍。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3