pcd的文件头格式:
1)ascii编码格式:
# .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 460400 HEIGHT 1 VIEWPOINT 0 0 0 1 0 0 0 POINTS 460400 DATA ascii
2)二进制编码格式:
# .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 460400 HEIGHT 1 VIEWPOINT 0 0 0 1 0 0 0 POINTS 460400 DATA binary
各字段意义:
VERSION:是指定版本号
FIELDS:是指定每一个点所拥有的的维度名字
SIZE:是每个维度占的字节大小
TYPE:是每一个维度的类型
WIDTH: –用点的数量表示点云数据集的宽度。根据是有序点云还是无序点云,WIDTH有两层解释:
(1)对于无组织或者说无结构的点云来说,width就是指点云中点的个数。这里就等同于POINTS,一般都是无结构的点云
(2) 对于有结构的点云来说,width是指点云数据集一行上点的个数。有结构的点云可以理解成这个点云像image(或者说是一个矩阵)一样进行组织,数据被分为行和列,如立体相机或者TOF相机获得的点云数据就属于这一类。对于有结构点云的一大好处就是能知道点云中点的相邻关系,最近邻操作效率就非常高,可以大大提高PCL中相应算法的效率。
例:cloud.width = 640; // there are 640 points per line
HEIGHT: 用点的数目表示点云数据集的高度。类似于WIDTH ,HEIGHT也有两层解释:
(1)对于有结构点云来说,height代表点云的总行数
(2)对于无结构的点云来说,height值为1,因此这也经常用来判断点云是或者不是一个有结构的点云。
VIEWPOINT:是指定数据集中点云的获取视点。VIEWPOINT有可能在不同坐标系之间转换的时候应用,在辅助获取其他特征时也比较有用,例如曲面法线,在判断方向一致性时,需要知道视点的方位,视点信息被指定为平移(txtytz)+四元数(qwqxqyqz)。默认值是:
VIEWPOINT 0 0 0 1 0 0 0
POINTS:数据的总点数
DATA:是表示数据存储的格式。有ASCII和binary二进制
可以看出前11行是固定的文件格式,其中第十一行标志了下面存储的点云坐标的格式,有ascii和binary两种格式。