点云数据格式


前言

点云是某个坐标系下的点的数据集。点包含了丰富的信息,包括三维坐标X,Y,Z、颜色、分类值、强度值、时间等等。

点云格式是指用来存储和表示三维点云数据的文件格式。点云格式可以分为ASCII和二进制两种主要格式。

ASCII格式是文本格式,每个点的信息用空格或逗号分隔,包含一个头文件和一个数据部分,方便阅读和编辑。常见的ASCII格式是文本格式包括:ASC、XYZ、TXT、PCD、PTS、PTX等。二进制(Binary)格式是二进制文件,每个点的信息用字节存储,不包含头文件,占用空间小,读写速度快。常见的二进制格式是文本格式包括:BIN、LAS、PCD、NPY等。

具体如下:

一、.asc、.xyz、.txt格式

ASC、XYZ与TXT都是点云格式中一种常见的文本格式,可以用于存储点云数据以及其他3D几何数据。在这些格式中,每个点占据一行。每个点在一行中以x、y、z三个坐标值的顺序给出,每个坐标值之间用空格、制表符或逗号进行分隔。此外,可以在每个点的坐标值之后加上可选的点属性信息,这些属性信息也以空格、制表符或逗号分隔。
文本格式的文件可以使用任何文本编辑器打开,具有易于阅读和编辑的优点

二、.pts与.ptx格式

.ptx和.pts是Leica的扫描仪与相关配套软件所使用的点云文件格式。
.pts文件是一个简单的文本文件,用于存储通常来自激光雷达扫描仪的点数据。 第一行给出了要遵循的点数。 随后的每一行有 7 个值,前三个是 (x,y,z) 坐标 其中,第四个是“强度”值,最后三个是“颜色值”(R,G,B) 。 强度和颜色值的范围是0-255(单个无符号字节)。
具体示例如下:
253730194 //number of points
-0.41025 -2.0806 8.00981 55 52 44 65
-0.63016 -1.84527 6.59447 228 228 230 225
-0.4766 -2.14446 7.91288 60 56 54 68
-0.52017 -1.51698 7.91458 60 58 50 71
-0.626 -2.46051 7.35187 152 140 160 161
-0.62371 -1.53502 7.46876 168 163 175 175
-0.62829 -2.27286 6.34905 208 204 213 212
-0.62614 -2.48739 7.36484 151 144 155 159
: : :
: : :
: : :

.pts文件使用单独扫描的概念,每个文件中可以有多组点云,一般一站为一组。每组点云都提供了单独的头信息,包括行列数、扫描仪位置、扫描仪主轴和转换矩阵等。
.pts文件将每个扫描点云都定义在自己的坐标系中,然后将所有这些点"注册"到单个坐标系中。每个点的数据存储在它的原始坐标系中,点云的转换矩阵通过文件的标头信息提供。
头文件格式如下:
number of columns
number of rows
st1 st2 st3 ; scanner registered position
sx1 sx2 sx3 ; scanner registered axis ‘X’
sy1 sy2 sy3 ; scanner registered axis ‘Y’
sz1 sz2 sz3 ; scanner registered axis ‘Z’
r11 r12 r13 0 ; transformation matrix
r21 r22 r23 0 ; this is a simple rotation and translation 4x4 matrix
r31 r32 r33 0 ; just apply to each point to get the transformed coordinate
tr1 tr2 tr3 1 ; use double-precision variables
具体示例如下:
6282
157
558312.218127 5240857.469093 76.298415
0.644200 -0.764857 0.000038
0.764857 0.644200 -0.000027
-0.000004 0.000047 1
0.644200 -0.764857 0.000038 0
0.764857 0.644200 -0.000027 0
-0.000004 0.000047 1.000000 0
558312.218127 5240857.469093 76.298415 1
0 0 0 0.500000 0 0 0
12.032272 -2.613480 -2.036392 0.159304 168 183 142
12.860123 -2.793289 -2.162979 0.183719 118 121 94
12.881760 -2.798019 -2.153061 0.183963 103 105 84
12.896347 -2.801193 -2.141922 0.188357 100 111 97
:
:
:
1.310898 -0.674240 1.076859 0.156863 17 17 19
1.310837 -0.674210 1.079025 0.144411 27 26 24
1.310196 -0.673874 1.080795 0.096803 25 24 22
参考:
pts - Laser scan plain data format
ptx plain text data format

三、.pcd格式

PCD数据格式是点云库(PCL)官方指定的点云数据文件格式,为点云库量身定制,支持n维点类型扩展机制,能够更好的发挥PCL库的处理性能。PCD文件包含一个头文件和一个数据部分,文件头用于描绘点云的整体信息,如版本、字段、大小、类型、数量、宽度、高度等,数据部分为点的坐标和属性,由点的笛卡尔坐标构成,文本模式下以空格做分隔符。文件格式有文本(ASCII)和二进制(Binary)两种存储格式。

VERSION文件版本信息
FIELDS指定的数据点维度与字段名
SIZE用字节指定每一个维度的大小
TYPE指定每一维度的数据类型
COUNT指定每一维度包含的元素数目
WIDTH指定的点云集宽度
HEIGHT指定的点云集高度
VIEWPOINT指定的点云集获取视角
POINT总点数
DATA点云的文本类型

示例:

#.PCD v.7 - Point Cloud Data file format
VERSION .7
FIELDS x y z rgb
SIZE 4 4 4 4
TYPE F FFF
COUNT 1 1 1 1
WIDTH 213
HEIGHT 1
VIEWPOINT 0 0 0 1 0 0 0
POINTS 213
DATA ascii
0.93773 0.33763 0 4.2108e+06
0.90805 0.35641 0 4.2108e+06

四、.las格式

LiDAR数据的工业标准格式,是一种二进制文件格式。由ASPRS(美国摄影测量与遥感学会)下的LiDAR专业委员会于2003年发布。
LAS文件按每条扫描线排列方式存放数据,包括激光点的三维坐标、多次回波信息、强度信息、扫描角度、分类信息、飞行航带信息、飞行姿态信息、项目信息、GPS信息、数据点颜色信息等。LAS旨在提供一种开放的格式标准,允许不同的硬件和软件提供商输出可互操作的统一格式。
标准的LIDAR文件分为三个部分:公用文件头块(PUBLICHEADERBLOCK)、变量长度记录(VARIABLELENGTHRECORDS)和点数据记录(POINTDATARECORD)。

公用文件头块用来记录数据集的基本信息,包括LIDAR点总数、数据范围、LIDAR点格式、变长记录总数、LAS文件的生成方式等。

公共文件头数据结构定义:

char file_signature[4]; //文件签名,均为"LASF"

unsigned short file_source_id; //文件ID

unsigned short global_encoding; //全球编码

unsigned long project_id_guid_data1; //项目ID1

unsigned short project_id_guid_data2; //项目ID2

unsigned short project_id_guid_data3; //项目ID3

unsigned char project_id_guid_data4[8]; //项目ID4

unsigned char version_major; //大版本(1)

unsigned char version_minor; //小版本(0/1/2/3/4)

char systemID[32]; //硬件信息

char generatingSoftware[32]; //软件信息

unsigned short fileCreationDay; //文件创建天数

unsigned short fileCreationYear; //文件创建年份

unsigned short headerSize; //头文件大小

unsigned long pointDataOffset; //点数据记录起始位置(对应第3部分)

unsigned long numberOfVariableRecords; //可变数据记录数量

unsigned char pointDataFormatID; //点数据记录格式(0/1/2/3/4/……/10)

unsigned short pointDataRecordLength; //点数据记录长度

unsigned long numberOfPointRecords; //总共的点数量

unsigned long numberOfPointsByReturn[5];//回波点数量

double x_scale; //比例因子

double y_scale;

double z_scale;

double x_offset; //偏移量

double y_offset;

double z_offset;

double x_max; //最大最小值(实际值)

double x_min;

double y_max;

double y_min;

double z_max;

double z_min;

变量长度记录用来记录数据的投影信息、元数据信息以及用户自定义信息等,是LAS格式中最灵活的部分。每条变长记录包括固定的变长记录头和灵活的扩展域两部分。一条变长记录的长度=变长记录头长度+扩展域长度。

公共文件头后面就是零个或者多个变长记录。公共文件头部分的numberOfVariableRecords记录了共有几个变长记录。变长记录必须依次访问,因为每个变长记录长度都包含在边长记录头信息里。

变长记录文件头:
在这里插入图片描述
点数据记录的格式以下表为基础,不同格式添加了部分不同的item,以1.4版本的Point Data Record Format 0为例。
在这里插入图片描述

las共发布了las1.0~1.4等多个版本,在LAS1.0-1.2版本中包含:公共头可变长度的记录点数据的记录,而在1.3-1.4版本中,增加了扩展变长记录。详细标准文档如下表:

VERSION文档
1.0http://www.asprs.org/a/society/committees/standards/asprs_las_format_v10.pdf
1.1http://www.asprs.org/a/society/committees/standards/asprs_las_format_v11.pdf
1.2http://www.asprs.org/a/society/committees/standards/asprs_las_format_v12.pdf
1.3http://www.asprs.org/a/society/committees/standards/LAS_1_3_r11.pdf
1.4http://www.asprs.org/a/society/committees/standards/LAS_1_4_r11.pdf

参考资料:
https://laspy.readthedocs.io/en/latest/intro.html

LAS文件包含以下信息:
C-class(所属类)
F-flight(航线号)
T-time(GPS时间)
I-intensity(回波强度)
R-return(第几次回波)
N-number of return(回波次数)
A-scan angle(扫描角)
RGB-red green blue(RGB颜色值)
示例:
在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sankingvenice

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值