关于asc、txt格式到pcd、ply格式数据转换

本文介绍了点云数据格式,包括ASC和TXT的文本格式,以及PCD和PLY的结构。内容涉及如何使用open3d库将ASC/TXT数据转换为PCD或PLY格式,并提供了数据转换的Python代码示例。转换过程包括读取原始数据,创建点云对象,然后保存为所需格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 asc数据说明

        许多点云数据是asc或txt数据格式,asc(ascii)即文本文件,数据已可视化的文本存储。在点云数据处理时,常面临数据格式转换问题,比如说需要转换成pcd或ply数据格式。

2 pcd、ply数据说明

2.1 pcd数据

        pcd是点云数据(一个三维坐标系中的一组向量的集合)的一种格式,例如下图数据模式:数据前几行分别为:VERSION 0.7、FIELDS x y z、SIZE 4 4 4、TYPE F F F、COUNT 1 1 1、WIDTH 512、HEIGHT 1、VIEWPOINT 0 0 0 1 0 0 0、POINTS 512、DATA ascii。pcd前十行数据分别表示:pcd文件版本、指定点x y z信息、每个数据占用的内存、每个数据的数据类型、每个维度的元素数量、数据点的宽度、数据点的高度、采集数据时的视点、点云总数量、点云数据存储的类型。

2.2 ply数据

        ply文件格式是Stanford大学开发的一套三维mesh模型数据格式。ply文件结构:文件头加上元素数据列表。头文件主要描述文件类型、格式与版本、元素类型、元素属性等信息。数据格式样例如下图。

 3 数据格式转换

        数据转换思路:读取txt和asc数据文件,运用open3d库o3d.io.write_point_cloud()函数实现数据转化和数据存储。(txt数据和asc数据文件读取方式相同)

import numpy as np
import open3d as o3d

## 数据读取
np.set_printoptions(suppress=True) # 取消默认的科学计数法
Data1 = np.loadtxt('xxxxx.txt',dtype=np.float,skiprows=1,
                   delimiter=' ',usecols=(0,1,2),unpack=False)
## open3d数据转换 
pcd = o3d.geometry.PointCloud()
pcd.points = o3d.utility.Vector3dVector(Data1)
# print(np.asarray(pcd.points))
o3d.visualization.draw_geometries([pcd])
## 保存成ply数据格式
o3d.io.write_point_cloud('xxx.ply',pcd,write_ascii=True) # ascii编码
o3d.io.write_point_cloud('xxx.ply',pcd,write_ascii=False) # 非ascii编码
## 保存成pcd数据化格式
o3d.io.write_point_cloud('xxx.pcd',pcd,write_ascii=True) # ascii编码
o3d.io.write_point_cloud('xxx.pcd',pcd,write_ascii=True) # 非ascii编码

参考链接:(60条消息) 点云数据pcd文件简介_悟影生的博客-CSDN博客_pcd文件

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值