数据处理一 使用python对文本形式数据进行处理

本文介绍了如何使用Python中的numpy库对深度相机拍摄的点云数据进行归一化处理,包括使用numpy的简单读写方法、直接操作文本数据以及全编码实现。三种方式分别展示了从np读写到手动解析和编码的详细步骤。
摘要由CSDN通过智能技术生成

一、数据分析

以下数据是深度相机拍摄的点云数据,其为为n行6列的文本数据,分别对应x、y、z、r、g、b,列与列之间用‘→’分割。其rgb值不满足open3d程序的点云读写需求,故要将r、g、b的值进行归一化。。

-742.266	-566.249	1237	179	217	240
-747.144	-571.742	1249	179	217	240
-728.721	-559.383	1222	179	215	237
-728.232	-560.756	1225	178	214	236
-720.62	-556.636	1216	177	215	236
-718.359	-556.636	1216	178	216	239
-720.219	-559.84	1223	174	215	237
-713.33	-558.009	1219	173	215	239
-712.813	-559.383	1222	176	217	239
-705.307	-555.263	1213	177	215	238

二、数据处理

对于以上数据,本博文介绍以下三种处理方式:

2.1 完全使用np读写

由于数据有固定统一的格式,可以直接使用numpy库里的函数进行文本数据的读写,该方式最为简单。

可直接使用np.loadtxt函数将txt里的文本数据解析为np数组,需设置数据类型(dtype=np.float32)和分隔符delimiter,本博文设置的分割符为‘→’(数据类型和分隔符可根据自己的文本数据进行调整)

利用np数组可直接进行多维度切片处理的特点b[:,3:]=b[:,3:],对第二个维度进行切片,对rgb的数值进行归一化处理

最后使用np.savetxt函数将更改后的新数据存入新的txt文件中,需设置文件路径、要存储的对象,delimiter为存储成文本时的分割符,fmt='%0.3f'为存储的数据格式‘%0.3f’表示存储的数据格式为保留3位小数的float

#从txt文件中读取数据
b=np.loadtxt('2023_09_27_14_10_50/PointCloudxyzrgb/00000001.txt',dtype=np.float32,delimiter='	')
b[:,3:]=b[:,3:]/255 #数组第三位,第四位,第五位分别对应r,g,b,除以255就变为了0-1之间的小数(归一化)
#更改后的新数据存入新的txt文件中
np.savetxt('2023_09_27_14_10_50/PointCloudxyzrgb/000000022.txt',b,delimiter=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

摸鱼的机器猫

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

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

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

打赏作者

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

抵扣说明:

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

余额充值