一种新的文件格式
PCD文件格式并非白费力气地做重复工作,现有的文件结构因本身组成的原因不支持有PCL库引进n维点类型机制处理过程中的的某些扩展,而PCD文件格式很好的补足这一点。PCD不是第一个支持3D点云数的文件类型,尤其是计算机图形学和计算机几何学领域,已经创建了很多格式来描述任意多边形和激光扫描仪获取点云。包括以下几种格式:
· PLY是一种多边形文件格式,有Stanford大学的Turk等人设计开发
· STL是3D Systems 公司创建的模型文件格式,主要应用于CAD,CAM领域
· OBJ是从几何学上定义的文件格式,首先由Wavefront Technology开发
· X3D是否和ISO标准的机遇XML的文件格式,表示3D计算机图形数据;
其他许多种格式
以上所有的文件格式都有缺点。因为他们是在不同时间为不同目的所创建的。
PCD版本
在点云库(PCL)1.0版本发布之前,PCD文件格式有不同的修订号。这些修订号用PCD_Vx来编号(比如,PCD_V5,PCD_V6等),代表PCD文件的0.x版本号。然而PCL中PCD文件格式的正式发布是0.7版本(PCD_V7)。
文件头格式
每个PCD文件包含一个头文件,他确定和声明文件中存储的点云数据的某种特征。PCD头文件必须用ASCII码来编码。PCD文件中指定的每一个文件头字段以及ASCII点数据都用一个新行(\n)分开了,从0.7版本开始,PCD文件头包含下面字段:
· VERSION --指定PCD文件版本
· FIELDS--指定一个点可以有的每一个维度和字段的名字。例如
FIELDS x y z #XYZ data
FIELDS x y z rgb #XYZ +colors
FIELDS x y z normal_x normal_y normal_z #XYZ + surface normals
FIELDS j1 j2 j3 #moment invariants
· SIZE--用字节数指定每一个维度的大小 例如:
unsigned char/char has 1 byte
unsigned short/short has 2 bytes
unsignedint /int/float has 4 bytes
double has 8 bytes
· TYPE--用一个字符指定每一个维度的类型,现在被接受的类型有:
I--表示有符号类型int8(char)、int16(short)、int32(int);
U--表示无符号类型uint8(unsigned char),unit16(unsigned short)和uint32(unsigned int);
F--表示浮点类型
·COUNT--指定每一个维度包含的元素数目。例如,x这个数据通常有一个元素,但是像VFH这样的特征描述子就有308个。实际上这是在给每一点引入n维直方图描述符的方法,把它们当做单个的连续存储块。默认情况下,如果没有COUNT,所有维度的数目被设置成1。
·WIDTH--用点的数量表示点云数据点的宽度。根据市有序点和无序点云,WIDTH