PCD与STL格式及其内涵

将.pcd转化为.stl 项目要求:对缸进行三维重建 阅读详情

PCD格式

PCD(Point Cloud Data)格式是PCL(Point Cloud Library)的标准官方格式。

PCD文件的版本

在点云库PCL1.0版本发布之前,PCD格式有不同的修订号。这些修订号用PCD_Vx来编号(例如,PCD_V5、PCD_V6、PCD_V7等等),代表PCD文件的0.x版本号。而PCL中PCD文件格式的正式发布是0.7版本(PCD_V7)。

PCD文件头格式

每一个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)、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有可能在不同坐标系之间转换的时候应用,在辅助获取其他特征时也比较有用,例如曲面法线,在判断方向一致性时,需要知道视点的方位。

视点信息被指定为平移(tx ty tz)+四元数(qw qx qy qz)。默认值是:

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,此字符表示该点的值不存在或非法等。

  • 如果以二进制形式,这里数据是数组(向量)pcl::PointCloud.points的一份完整拷贝,在Linux系统上,我们用mmap/munmap操作来尽可能快的读写数据,存储点云数据可以用简单的ascii形式,每点占据一行,用空格键或Tab键分开,没有其他任何字符。也可以用二进制存储格式,它既简单又快速,当然这依赖于用户应用。ascii格式允许用户打开点云文件,使用例如gunplot这样的标准软件工具更改点云文件数据,或者用sed、awk等工具来对它们进行操作。

综上,PCD文件头的格式如下:

# .PCD v0.7 - Point Cloud Data file format  
VERSION 0.7 //PCD文件版本
FIELDS x y z r g b intensity timestamp //每个点包含哪些维度,xyz表示XYZ三维坐标,rgb表示颜色(可以分开表示,也可以一个浮点数表示),intensity表示激光反射强度,timestamp表示时间戳,normal_x、normal_y、normal_z表示平面法线三维坐标,j1、j2、j3表示不变矩。
SIZE 4 4 4 1 1 1 1 8 //每个维度的数据占用字节大小
TYPE F F F U U U U F //每个维度的数据类型,I表示有符号类型int8(char)、int16(short)、int32(int),U表示无符号类型uint8(unsigned char)、uint16(unsigned short)、uint32(unsigned int),F表示浮点型
COUNT 1 1 1 1 1 1 1 1 //每个维度含有多少个元素(如果未提供COUNT属性,默认值为1)
WIDTH 32 //用点的数量表示点云数据集的宽度。有两种含义:1.无序数据集的点云中点的数量 2.有序点云数据集的宽度(一行中点的数量),有序点云数据集中,点云类似图片或矩阵的结构,分为行和列,这种数据通常来自于立体摄像机(stereo camera)、时间飞行摄像机(Time Of Flight camera,使用红外线或者光脉冲来估计光线从发射到检测到的时间延迟来测量距离),知道点的相邻关系,使算法计算更高效。
HEIGHT 2172 //用点云数据集中点的数量表示点云数据集的高度。高度有如下两种含义:1.有序的点云数据集中,行的数量 2.无序点云数据集中,高度为1(可以用来判断一个数据集是有序的还是无序的)
VIEWPOINT 0 0 0 1 0 0 0 //指定数据集合中点的采集视点。可以用来后续可能的坐标转换,或者求平面法线坐标。格式是平移(tx ty tz) + 四元数(qw qx qy qz),默认是0 0 0 1 0 0 0。
POINTS 69504 //点云中点的总数(冗余字段)
DATA binary_compressed //点云数据的存储类型,0.7版本支持两种存储方式:ascii和binary。

相对其他文件格式的优势:

用PCD作为(另一种)文件格式可能被看成是没有必要的一项工作。但实际中,情况不是这样的,PCD文件格式并非白费力气地做重复工作,以前的文件结构因本身组成的原因不支持由PCL库引进n维点类型机制处理过程中的某些扩展,而PCD文件格式能够很好地补足这一点,PCD文件的适用性和速度在PCL中被充分发挥出来。PCD文件格式包括以下几个明显的优势:

  • 存储和处理有序点云数据集的能力——这一点对于实时应用,例如增强现实、机器人学等领域十分重要;
  • 二进制mmap/munmap数据类型是把数据下载和存储到磁盘上最快的方法;
  • 存储不同的数据类型(支持所有的基本类型:char,short,int,float,double),使得点云数据在存储和处理过程中适应性强并且高效,其中无效的点的通常存储为NAN类型;
  • 特征描述子的n维直方图——对于3D识别和计算机视觉应用十分重要。
  • 另一个优势是通过控制文件格式,我们能够使其最大程度上适应PCL,这样能获得PCL应用程序的最好性能,而不用把一种不同的文件格式改变成PCL的内部格式,这样的话通过转换函数会引起额外的延时。

注意: 尽管PCD(点云数据)是PCL中的内部文件格式,pcl_io库也提供在前面提到的所有其他文件格式中保存和加载数据。
参考链接:点云格式解读LAS/PCD

STL格式

关于STL、OBJ、AMF、3MF的历史角逐及演进,可以参考下面这篇文章:
关于3D打印文件格式:STL、OBJ、AMF、3MF的详解

STL文件格式(stereolithography,光固化立体造型术的缩写)是由3D SYSTEMS 公司于1988 年制定的一个接口协议,是一种为快速原型制造技术服务的三维图形文件格式。STL 文件由多个三角形面片的定义组成,三角形顶点的排列顺序遵循右手法则,每个三角形面片的定义包括三角形各个顶点的三维坐标及三角形面片的法矢量。

也就是说STL只能用来表达封闭的面或者体,STL有两种组织方式:一种是ASCII码格式,另一种是BINARY格式:

STL的ASCII格式

solid filenamestl 		//文件路径及文件名
facet normal x y z	    // 三角面片法向量的3个分量值
outer loop
vertex x y z			//三角面片第一个顶点的坐标
vertex x y z 	  	    //三角面片第二个顶点的坐标
vertex x y z			//三角面片第三个顶点的坐标
endloop
endfacet 				//第一个三角面片定义完毕
……
//多个三角面片
……
endsolid filenamestl	//整个文件结束

STL的BINARY格式

二进制STL文件用固定的字节数来给出三角面片的几何信息。
文件的起始80字节是文件头存储文件名,可以放入任何文字信息;
紧随着用4个字节的整数来描述实体的三角面片个数;
后面的内容就是逐个给出每个三角面片的几何信息。

每个三角面片占用固定的50字节:
它们依次是3个4字节浮点数,用来描述三角面片的法矢量;
3个4字节浮点数,用来描述第1个顶点的坐标;
3个4字节浮点数,用来描述第2个顶点的坐标;
3个4字节浮点数,用来描述第3个顶点的坐标。

每个三角面片的最后2个字节用来描述三角面片的属性信息(包括颜色属性等)暂时没有用。

一个二进制STL文件的大小为三角形面片数乘以50再加上84个字节。

PCD文件格式 目录什么是PCD文件PCD版本 PCD文件内容 python加载PCD文件 什么是PCD文件  Point Cloud Data,中文译为点云数据(简称PCD),它是一种存储点云数据的文件格式。其实文件格式有很多种,但是为什么还要重新定义一种新的文件格式呢?那是因为它们都无法满足PCL(Point Cloud Library)的数据处理需求。在PCD格式被定义之前,表示激光扫描仪获取的点云、任意多变形的文件格式有:   PLY:表示多边形的文件格式;   STL:CAD文件格式,用3d max或CAD软件处 阅读详情

相关推荐

pcd文件介绍

PCD 文件格式并不是要重新发明轮子,而是为了补充由于某种原因不支持/不支持 PCL 为 nD 点云处理带来的某些扩展的现有文件格式。 PCD 不是第一种支持 3D 点云数据的文件类型。尤其是计算机图形学和计算几何学社区,已经创建了多种格式来描述使用激光扫描仪获取的任意多边形和点云。

m0_73126623的博客 2253

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

ply格式即Polygon File Format,又称斯坦福三角形文件,其内容分为文件头和数据,其中文件头通过ASCII编码,数据可以采取ASCII或者二进制的形式。ASCII格式则按行写入数据,每个三角面由7行数据构成,内容与二进制的50个字节相同,其书写结构大致为。为首行,第二行为文件格式,一般来说有三种写法,分别表示ASCII,或者大小端序存放的二进制文件。在数据部分,以50个字节为一个三角面,逐个给出每个三角面片的几何信息。为数据类型,支持主要的C语言类型,包括两种写法,一种指定数据位数,包括。

微小冷的学习笔记 5337

从三维网格到离散点云:Open3D实战PLY/STL转PCD格式解析

本文详细解析了如何使用Open3D将PLY/STL三维网格文件转换为PCD点云格式,涵盖了环境配置、数据准备、技术细节、性能优化及常见问题排查。通过实战案例和代码示例,帮助开发者高效处理三维数据转换,适用于点云配准、三维重建等应用场景。

weixin_30872499的博客 637

PCL 各种三维格式转PCD文件(ply、stl、xyz、obj、asc、txt、las、laz、bin)

现有的点云格式繁杂多样,如stl、ply、obj、txt等都是常见的点云格式,这些不同类型的点云格式是在不同的时间阶段为了不同的目的而创建的,各有优点也均有不足,为了统一内部的点云格式,减少点云转换的额外花销,同时也为了解决现有文件结构不支持PCL中某些补充拓展的问题,PCL设计了内部独有的pcd文件格式,因此如果想利用PCL库,第一步就是需要将待研究的点云转换为pcd格式。

Dbojuedzw的博客 7277

pcd,obj,mtl文件格式解析

pcd,obj,mtl文件格式解析pcdobjmtl文件格式解析 pcd文件解析 格式说明 例子 obj文件解析 格式说明 例子 mtl文件解析 格式说明 例子pcd文件解析 PCD文件格式并非白费力气地做重复工作,现有的文件结构因本身组成的原因不支持由PCL库引进n维点类型机制处理过程中的某些扩展,而PCD文件格式能够很好地补足这一点。PCD不是第一个支持3D点云数据的文件类型,尤其是计算机图

新安浅滩的博客 4953

PCL--PCD(点云数据)文件格式

一种新的文件格式 PCD文件格式并非白费力气地做重复工作,现有的文件结构因本身组成的原因不支持由PCL库引进n维点类型机制处理过程中的某些扩展,而PCD文件格式能够很好地补足这一点。PCD不是第一个支持3D点云数据的文件类型,尤其是计算机图形学和计算几何学领域,已经创建了很多格式来描述任意多边形和激光扫描仪获取的点云。包括下面几种格式:  PLY是一种多边形文件格式,由Stanford大学的T

Tan 3473

stl文件转pcd格式

【代码】stl文件转pcd格式。

ivanwfy的专栏 321

Open3d点云处理之stl格式转pcd文件

可以用于前期学习,适合有建模功底的人奥。

kolentonmk的博客 979

PCL 读取STL文件并转存为PCD【2025最新版】

读取,显示STL文件,并转存为PCD。博客长期更新,本文最近更新时间为:2025年9月18日。

点云侠的博客 4018

stl数据转换成pcd点云数据,网上找不到的稀少资源(自己编写)

之前收集各个资源的转化,终于找到stl格式转换成pcd格式的数据代码,这个网上是没有现成的,我们费了好大的功夫才解决了这个格式转换问题,很珍贵的资源,分享一下!希望对你们有帮助。

PCL中STL格式转成pcd格式

PCL中STL格式转成pcd格式 亲测好用 #include <iostream> #include <pcl/io/io.h> #include <pcl/io/pcd_io.h> #include <pcl/io/ply_io.h> #include <pcl/io/vtk_lib_io.h>//loadPolygonFileOBJ所属头文件; #include <pcl/point_cloud.h> #include <pc

ZHANzhenrong的博客 3427

Chapter2、HDR流水线

HDR内容的获取(不同曝光时间的图片合成) 相机响应函数 HDR视频

qq_55621259的博客 2597

点云格式-PCD格式介绍

PCD文件格式是PCL库最常用的一种数据格式、也是其提供的一个独有的数据格式,PCD文件格式并不是要重新发明轮子,而是为了补充现有的文件格式,这些文件格式由于某种原因不支持PCL为n-D点云处理带来的一些扩展。PCD并不是第一种支持3D点云数据的文件类型。特别是计算机图形学和计算几何社区,已经创建了许多格式来描述使用激光扫描仪获得的任意多边形和点云。这些格式包括:PLY:一种多边形文件格式,由斯坦福大学的Turk等人开发STL :由3D系统创建的立体光刻CAD软件的原生文件格式。

洪源兄 5880

AHP层次分析法在项目风险评估中的实战应用(含Excel模板)

本文详细介绍了AHP层次分析法在项目风险评估中的实战应用。通过构建风险层次模型、利用判断矩阵量化主观判断,并结合Excel工具进行权重计算与一致性检验,将模糊的定性风险转化为清晰的量化排序。文章以新产品上线项目为例,提供了完整的分析流程和可操作的Excel模板,帮助项目经理高效识别并优先处理核心风险。

weixin_29061465的博客 571

RPN 解析

RPN全称是Region Proposal Network,Region Proposal的中文意思是“区域选取”,也就是“提取候选框”的意思,所以RPN就是用来提取候选框的网络; 1. RPN的意义 RPN第一次出现在世人眼中是在Faster RCNN这个结构中,专门用来提取候选框,在RCNN和Fast RCNN等物体检测架构中,用来提取候选框的方法通常是Selective Se

lanran2的博客 10万+

PCD 格式

PCD(Point Cloud Data)是Point Cloud Library(PCL)专用的点云数据存储格式,相比PLY、STL等传统3D格式更具优势。PCD文件由ASCII编码的头部和实际数据组成,头部包含版本号、字段定义、数据类型等元信息。它支持有序/无序点云、多种数据存储方式(ASCII/二进制/压缩二进制),并能处理带颜色、法向量等n维特征的点云数据。PCD格式针对点云处理需求进行了优化,具有高效二进制读写、灵活数据类型支持等特点,特别适合机器人、AR/VR等需要复杂3D处理的场景。

qq_74144382的博客 1839

【PCIe 总线及设备入门学习专栏 3.2.2 -- PCIe 中什么是 SR-IOV】

SR-IOV(Single Root I/O Virtualization)是 PCIe 规范中的一种技术,允许物理 PCIe 设备(称为 Physical Function, PF)虚拟化为多个虚拟设备(称为 Virtual Functions, VFs),使多个操作系统或虚拟机能够共享同一个物理设备。SR-IOV:一种 PCIe 虚拟化技术,允许将一个物理 PCIe 设备虚拟化为多个虚拟设备。:物理设备的主要管理接口。:PF 的轻量级副本,分配给虚拟机或操作系统。

CodingCos的博客 1515

PCD文件格式(The PCD (Point Cloud Data) file format)

本文档描述PCD(点云数据)文件格式,以及它在点云库(PCL)中的使用方式。 PCD文件格式图标 PCD文件格式图标 #为什么新的文件格式? PCD文件格式并不意味着重新发明轮子,而是补充现有文件格式,由于某种原因,这些格式不支持/不支持PCL为nD点云处理带来的一些扩展。 PCD不是支持3D点云数据的第一种文件类型。特别是计算机图形和计算几何社区已经创建了多种格式来描述使用激光扫描仪获取的任意多...

了不起的菠萝君的博客 8274

乐企增值税及附加税费预缴申报表填报能力说明文档V1.004

申报表填报,是指企业在自有业务系统中将算税结果数据按预填规则要求加工汇总后,进行申报表填报的过程。申报表填报前对纳税申报所需的前提条件进行校验。校验通过后,应用前序算税结果数据及预填规则进行纳税申报表预填,生成申报表数据。申报表数据通过申报业务规则校验后,经纳税人确认即完成申报表填报业务。

记录点滴 359

作物生长模型Oryza V3实战9:控制文件参数详解

control.dat是ORYZA水稻模型的核心配置文件,主要包含三部分:1)基础参数设置与模拟时间定义;2)关键文件路径配置,包括土壤参数文件(soil.sol)、作物参数文件(cultivar.crp)、田间管理文件(manage.exp)及气象数据目录,同时指定输出结果文件(res.dat)和运行日志(model.log);3)可选参数和输出控制选项。该文件通过关联各类输入数据(气象、土壤、品种特性等)和输出结果,实现模型运行的全流程控制,支持参数调整后继续模拟和中断恢复功能。

221

PCL从obj到pcd

综述 PCD全称Point Cloud Data,是一种存储点云数据的文件格式。PCD格式出现之前表示激光扫描仪获取的点云、任意多边形等的文件格式比如: PLY:表示多边形的文件格式。 STL:CAD文件格式,用3d max或CAD软件处理。 OBJ:一种几何学格式文件。 代码 #include <pcl/io/io.h> #include <pcl/io/pcd_io.h&g...

FrankDura的博客 3494

数字游民产业小报告 · 2025

2025 年全球数字游民约(不同统计口径差异很大,低估法约 4,000 万,高估法 8,000 万),美国来源占比最高。:2025 Q1 约岗位允许一定程度远程;2024 年美国员工至少部分远程(全球 2023 年约 28%)。:到 2025 年,提供数字游民/远程工作签证(媒体口径 50–73 个不等;福布斯 66、Citizen Remote 50+、有机构清单称 73)。:以英国为例,期望未来一年全勤到岗、企业因强制返岗出现离职,说明“灵活/远程”仍是劳动力市场的筹码之一。

Anthony1453的博客 1469

点云PLY格式与PCD格式区别

PCD:PCL库的特有格式,专为存储点云数据而设计。PLY:一种多边形文件格式,由 Turk 等人在斯坦福大学开发。STL :3D Systems 创建的立体光刻 CAD 软件原生的文件格式OBJ : 一种几何定义文件格式,最初由 Wavefront Technologies 开发X3D : 用于表示 3D 计算机图形数据的基于 XML 的 ISO 标准文件格式等等这些文件格式因为不同目的再不同时间被创建,因此都存在各自的问题,需要根据应用场景选择不同格式。

weixin_44368569的博客 2516

第38节:cesium 风场效果(含源码+视频)

cesium 风场效果

qq_29384639的博客 2332

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

PCL中PCD(Point Cloud Data)文件格式解析

PCD文件格式 虽然已有很多3D点云数据的文件类型,但现有的文件结构因本身组成的原因不支持PCL库引进的n维点类型机制处理过程中的某些扩展。所以PCL官方选择了PCD文件格式。 其他点云格式: PLY:一种多边形文件格式 STL:建模文件格式,主要应用于CAD、CAM领域 OBJ:从几何学上定义的文件格式 X3D:是符合ISO标准的基于XML的文件格式,用于表示3D计算机图形数据 PCD版本 在点云库(PCL)1.0发布之前,PCD文件格式有不同的修订号,PCL中正式发布的PCD文件格.

DayDayUp 8758

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: Object Detection Api使用记录
下一篇: 四个相机坐标系之间的转换关系
Leo-Ma
博客等级 码龄11年 1701粉丝 124原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值