推广 热搜: page  关键词  链接  搜索  红书  获取  哪些  数据分析  服务  数据 

ply las pcd等一些常见的基本点云文件格式的读写方法

   日期:2024-12-16     作者:9pa6t    caijiyuan   评论:0    移动:https://sicmodule.kub2b.com/mobile/news/8418.html
核心提示:使用文本格式存储的点云数据文件结构比较简单,每个点是一行记录,点的信息存储格式为 x y z或者 x y z r g b。读取

使用文本格式存储的点云数据文件结构比较简单,每个点是一行记录,点的信息存储格式为 x y z或者 x y z r g b。

读取文本格式的点云数据时,可以按照一般的文本读取方法,这里记录一下如何使用open3d读取txt格式的点云数据

 
 

一个PCD文件是文件头部分和数据部分组成

字段名字段解释VERSION指定PCD文件版本FIELDS指定一个点可以有的每一个维度和字段的名字SIZE用字节数指定每一个维度的大小TYPE用一个字符指定每一个维度的类型COUNT指定每一个维度包含的元素数据WIDTH无序点的数量或者有序点一行中点的数目HEIGHT无序点云中设置为1,有序点云中表示行数POINTS点云中点的总数DATA数据类型,二进制或者ASCII

1.2.1、open3d读写(python)

读取pcd点云文件

 
 
 
 

https://blog.csdn.net/weixin_37835423/article/details/105363615

方案一

直接根据点云保存的类型切换系统的pcl环境,如果点云rgb字段保存为float类型,则直接将pcl版本切换成pcl-1.9之前的版本,否则将pcl版本切换成pcl-1.9版本

方案二(推荐

系统的pcl版本一旦确定就很少去改动它,因为有很多先前的项目都是基于这个版本开发的,一旦改动版本,可能会出现"牵一发而动全身"问题,因此推荐直接对pcd文件进行更改,以适应系统的pcl版本
将rgb字段uint类型转换为float类型

 

运行修改程序后的结果

 

与temp_1_9.pcd文件内容一致,转换成功

LAS是一种存储点云的公开数据格式,主要用来存储雷达点云数据,LAZ是对LAS格式的无损压缩。

最新的LAS规格版本是LAS 1.4。laspy库可以支持1.2~1.4版本的LAS文件。

https://laspy.readthedocs.io/en/latest/index.html

一个LAS文件有三部分组成:文件头区(Header)、可变长记录区(VLRs)、点集记录区(Point Records)

文件头包含数据版本,点的格式(每个点存储的不同维度)等信息;可变长记录包括一些元信息,如坐标系信息,额外的维度等信息;点集记录区是las文件的核心,记录点的x、y、z坐标信息和r、g、b、classification、intensity等其他属性信息。

点的格式共有11个版本,其中第0版为基础,其他后续版本在第0版的基础上增加了其他字段,具体字段可以参考官方网站解释

https://laspy.readthedocs.io/en/latest/intro.html

3.2.1、使用laspy 读写(Python)

 

使用laspy写las文件

 

3.2.2、使用laslib读写(C++)

使用C++操作las文件可以使用laslib库。

 

写入las文件

 
 
 

PLY(Polygon File Format)是一种常见的点云存储格式,由斯坦福大学开发,其最早主要用于存储三维扫描仪器的点云数据。

PLY文件是由文件头和数据区两部分组成。

文件头(header)

其中文件头记录的是点云文件中的注释、元素类别和属性,以ply开头,以end header结尾。

 

文件头的第二行是文件的存储方式和版本,以format开头,依次是编码方式、版本。编码方式有三种分别是ascii、binary_little_endian 、binary_big_endian。目前PLY只有1.0版本。

 

format之后跟注释信息,以comment开头,制作者可以添加一些作者信息,点云基本信息。

 

注释信息comment之后是element元素信息+该种元素的property属性信息,element元素信息包括种类、个数,property属性信息包括属性字段的存储类型和属性名。PLY文件中的元素一般包括顶点(vertex)、面(face)、边(edge)等。元素信息和属性信息应该组合出现,格式如下

 

我们定义一个包含6个顶点和8个面元素的ply文件,文件头如下

 

数据区域

在文件头后直接开始存储数据,存储形式分为ASCII和二进制。以ASCII为例,先按行记录每个点,全部点记录完成后再按行记录每个面。

 

一个完整的ply文件

 
 

4.2.1、使用plyfile读写(Python)

使用plyfile读取ply文件

 

打印结果

 

使用plyfile写入ply文件

 
 
 

保存ply点云文件

 

保存ply点云文件

本文地址:https://sicmodule.kub2b.com/news/8418.html     企库往 https://sicmodule.kub2b.com/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类最新资讯
0相关评论

文章列表
相关文章
最新动态
推荐图文
最新资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号