.pcd文件格式

news2024/11/19 23:22:48

更详细的格式介绍可以查看我的这篇博客

『Open3D』安装与点云格式通识_open3d安装_NNNNNathan的博客-CSDN博客文章浏览阅读1.9k次。介绍了open3d的安装和当前适用与存储点云信息的文件格式,并详细介绍了pcd与ply两种格式。_open3d安装https://blog.csdn.net/qq_41366026/article/details/128853801?spm=1001.2014.3001.5501

pcd文件数据举例

# .PCD v.7 - Point Cloud Data file format
VERSION .7								# 版本号
FIELDS x y z rgb				#  指定一个点可以有的每一个维度和字段的名字
SIZE 4 4 4 4								# 用字节数指定每一个维度的大小。例如:
TYPE F FFF									# 用一个字符指定每一个维度的类型 int uint folat
COUNT 1 1 1 1						# 指定每一个维度包含的元素数目
WIDTH 640    						   # 像图像一样的有序结构,有640行和480列,
HEIGHT 480    					  # 这样该数据集中共有640*480=307200个点
VIEWPOINT 0 0 0 1 0 0 0			# 指定数据集中点云的获取视点 视点信息被指定为平移(txtytz)+四元数(qwqxqyqz)
POINTS 307200						# 指定点云中点的总数。从0.7版本开始,该字段就有点多余了
DATA ascii										# 指定存储点云数据的数据类型。支持两种数据类型:ascii和二进制
0.93773 0.33763 0 4.2108e+06
0.90805 0.35641 0 4.2108e+06

pcd文件格式详解

 

PCD版本

在点云库(PCL)1.0版本发布之前,PCD文件格式有不同的修订号。这些修订号用PCD_Vx来编号(例如,PCD_V5、PCD_V6、PCD_V7等等),代表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_xnormal_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)、uint16(unsigned short)和uint32(unsigned int);

F –表示浮点类型。

·COUNT –指定每一个维度包含的元素数目。例如,x这个数据通常有一个元素,但是像VFH这样的特征描述子就有308个。实际上这是在给每一点引入n维直方图描述符的方法,把它们当做单个的连续存储块。默认情况下,如果没有COUNT,所有维度的数目被设置成1。

·WIDTH –用点的数量表示点云数据集的宽度。根据是有序点云还是无序点云,WIDTH有两层解释:

1)它能确定无序数据集的点云中点的个数(和下面的POINTS一样);

2)它能确定有序点云数据集的宽度(一行中点的数目)。

注意:有序点云数据集,意味着点云是类似于图像(或者矩阵)的结构,数据分为行和列。这种点云的实例包括立体摄像机和时间飞行摄像机生成的数据。有序数据集的优势在于,预先了解相邻点(和像素点类似)的关系,邻域操作更加高效,这样就加速了计算并降低了PCL中某些算法的成本。

例如:

WIDTH 640       # 每行有640个点

·HEIGHT –用点的数目表示点云数据集的高度。类似于WIDTH ,HEIGHT也有两层解释:

1)它表示有序点云数据集的高度(行的总数);

2)对于无序数据集它被设置成1(被用来检查一个数据集是有序还是无序)。

有序点云例子:

WIDTH 640       # 像图像一样的有序结构,有640行和480列,

HEIGHT 480      # 这样该数据集中共有640*480=307200个点

无序点云例子:

WIDTH 307200

HEIGHT 1        # 有307200个点的无序点云数据集

·VIEWPOINT–指定数据集中点云的获取视点。VIEWPOINT有可能在不同坐标系之间转换的时候应用,在辅助获取其他特征时也比较有用,例如曲面法线,在判断方向一致性时,需要知道视点的方位,

视点信息被指定为平移(txtytz)+四元数(qwqxqyqz)。默认值是:

VIEWPOINT 0 0 0 1 0 0 0

·POINTS–指定点云中点的总数。从0.7版本开始,该字段就有点多余了,因此有可能在将来的版本中将它移除。

例子:

POINTS 307200   #点云中点的总数为307200

·DATA –指定存储点云数据的数据类型。从0.7版本开始,支持两种数据类型:ascii和二进制。查看下一节可以获得更多细节。

注意:文件头最后一行(DATA)的下一个字节就被看成是点云的数据部分了,它会被解释为点云数据。

警告:PCD文件的文件头部分必须以上面的顺序精确指定,也就是如下顺序:

VERSION、FIELDS、SIZE、TYPE、COUNT、WIDTH、HEIGHT、VIEWPOINT、POINTS、DATA

之间用换行隔开。

数据存储类型

在0.7版本中,.PCD文件格式用两种模式存储数据:

如果以ASCII形式,每一点占据一个新行:

p_1

p_2

...

p_n

注意:从PCL 1.0.1版本开始,用字符串“nan”表示NaN,此字符表示该点的值不存在或非法等。

# ASCII


# 二进制

其他文件格式

PLY是一种多边形文件格式,由Stanford大学的Turk等人设计开发;

STL是3D Systems公司创建的模型文件格式,主要应用于CAD、CAM领域;

OBJ是从几何学上定义的文件格式,首先由Wavefront Technologies开发;

X3D是符合ISO标准的基于XML的文件格式,表示3D计算机图形数据;

其他许多种格式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1210374.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring中的BeanFactory和ApplicationContext的区别

我用一个例子去测试BeanFactory和ApplicationContext的区别 首先建立一个bean public class User { //声明无参构造,打印一句话,监测对象创建时机public User(){System.out.println("User对象初始化");} } 然后再建立测试类 ublic class User…

Apache Airflow (七) :DAG调度周期设置

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹…

轻松找回您的珍贵回忆的最好的 6 种照片数据恢复软件!

照片是珍惜过去珍贵时刻的唯一方式。它们让记忆永存,帮助我们重温生命中最美好的时刻。但是,当这些时刻丢失时会发生什么?您是否曾经因系统崩溃而意外删除或丢失照片?丢失照片可能令人心碎,但仍有希望,因为…

【计算思维】少儿编程蓝桥杯青少组计算思维题考试真题及解析

少儿编程 蓝桥杯青少组计算思维题考试真题及解析 单选题 1.多多观察一个立体图形,从不同的角度看到的形状如下图所示: 这个立体图形可能是 A. B. C. D. 2.将下图旋转后,可以得到的图片是 A、 B、 C、 D、 3.小鱼按照下面的规律排列&a…

C语言--指针与数组--遍历数组的n种方式【详细】

一.一维数组名的含义 arr一般表示数组的其实地址(除了两种例外) 1.在定义数组的同一个函数中(不是形参),求sizeof(arr),求整个数组的字节数 2.在定义数组的同一个函数中(不是形参),&arr1,加整个数组的大小 (经常考试) 3.除上面以外,arr都表示数组的…

Leetcode刷题详解——太平洋大西洋水流问题

1. 题目链接:417. 太平洋大西洋水流问题 2. 题目描述: 有一个 m n 的矩形岛屿,与 太平洋 和 大西洋 相邻。 “太平洋” 处于大陆的左边界和上边界,而 “大西洋” 处于大陆的右边界和下边界。 这个岛被分割成一个由若干方形单元格…

exsi的安装和配置

直接虚拟真实机 vcent server 管理大量的exsi SXI原生架构模式的虚拟化技术,是不需要宿主操作系统的,它自己本身就是操作系统。因此,装ESXI的时候就等同于装操作系统,直接拿iso映像(光盘)装ESXI就可以了。 VMware vCente…

Vscode编辑器保存时一直提示正在保存“index.vue”: 正在从“‘Vetur‘, ‘ESLint‘”获取代码操作

问题描述: Vscode在使用了Vetur, ESLint两个扩展配置了vue文件语法检查,保存时自动fix,经常会出现卡死,通知内容如下: 正在保存“index.vue”: 正在从“Vetur, ESLint”获取代码操作; 解决办法&#xff1a…

μC/OS-II---互斥信号量管理1(os_mutex.c)

目录 背景:优先级反转问题互斥信号量管理互斥信号量创建互斥信号量删除互斥信号量获取/等待 背景:优先级反转问题 在高优先级任务等待低优先级任务释放资源时,第三个中等优先级任务抢占了低优先级任务。阻塞时间是无法预测的,可能…

基于springboot实现学生选课平台管理系统项目【项目源码】计算机毕业设计

基于springboot实现学生选课平台管理系统演示 系统开发平台 在该地方废物回收机构管理系统中,Eclipse能给用户提供更多的方便,其特点一是方便学习,方便快捷;二是有非常大的信息储存量,主要功能是用在对数据库中查询和…

μC/OS-II---互斥信号量管理2(os_mutex.c)

目录 背景:优先级反转问题互斥信号量管理互斥信号量发出(释放)互斥信号量获取/无等待互斥信号量状态查询 背景:优先级反转问题 在高优先级任务等待低优先级任务释放资源时,第三个中等优先级任务抢占了低优先级任务。阻…

【JY】ANSYS Workbench在减隔震应用分析中的单元积分技术笔记

写在前文 尽管减隔震技术与有限元结合取得了众多成果,但仍面临诸多挑战,如材料非线性、模型不确定性等等。减隔震设计除了常规的宏观结构设计采用SAP2000、Etabs、Midas、SSG、Paco-SAP 或 YJK\PKPM等。 【JY】各类有限元软件计算功能赏析与探讨 我们需要…

解析数据洁净之道:BI中数据清理对见解的深远影响

本文由葡萄城技术团队发布。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 前言 随着数字化和信息化进程的不断发展,数据已经成为企业的一项不可或缺的重要资源。然而,这…

Linux常用命令——bzgrep命令

在线Linux命令查询工具 bzgrep 使用正则表达式搜索.bz2压缩包中文件 补充说明 bzgrep命令使用正则表达式搜索“.bz2”压缩包中文件,将匹配的行显示到标注输出。 语法 bzgrep(参数)参数 搜索模式:指定要搜索的模式;.bz2文件&#xff1a…

Linux系统简介与开源精神

🎥 屿小夏 : 个人主页 🔥个人专栏 : Linux系统理论 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言🌤️Linux系统背景☁️UNIX发展史☁️Linux发展史☁️Linux系统企业应用现…

基于springboot实现校园医疗保险管理系统【项目源码】

基于springboot实现校园医疗保险管理系统演示 系统开发平台 在线校园医疗保险系统中,Eclipse能给用户提供更多的方便,其特点一是方便学习,方便快捷;二是有非常大的信息储存量,主要功能是用在对数据库中查询和编程。其…

2.6 Windows驱动开发:使用IO与DPC定时器

本章将继续探索驱动开发中的基础部分,定时器在内核中同样很常用,在内核中定时器可以使用两种,即IO定时器,以及DPC定时器,一般来说IO定时器是DDK中提供的一种,该定时器可以为间隔为N秒做定时,但如…

vue-组件通信(动态组件)

​🌈个人主页:前端青山 🔥系列专栏:Vue篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容:vue-组件通信|动态组件 目录 组件通信 1.父传子 2.子传父 3.ref 4.兄弟组件 5.跨层级 provid…

【ROS导航Navigation】二 | 坐标系 | 定位 | 导航约束

目录 致谢:ROS赵虚左老师 一、通过里程计定位 二、通过传感器定位 三、坐标系变换 四、导航约束条件 1.硬件 2.软件 致谢:ROS赵虚左老师 Introduction Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 参考赵虚左老师的实战教程 一、…

算不上最全,但都是必备——Redis这些不会不行啊

Redis篇 数据类型及其业务场景 字符串(String) 字符串类型是最基本的数据类型,value 最多可以容纳的数据长度是 512M。 存储任意类型的数据,包括数字、文本等。适用于缓存、计数器、分布式锁等场景。共享 Session 信息 哈希&am…