【LiDar16】Open3D将CSV点云数据可视化并保存

一、从pcap文件到CSV文件

最近使用深圳速腾的LiDar16线雷达,拿到的数据是pcap格式的文件,第一步比较简单,用雷达自带的软件把pcap文件导出成csv文件即可。

二、python读取csv文件

考虑到Open3d的API
【LiDar16】Open3D将CSV点云数据可视化并保存_第1张图片
所以用Numpy读取csv文件比较合适
所以

import numpy as np
import open3d as o3d
np.set_printoptions(suppress=True) # 取消默认的科学计数法
Data1 = np.loadtxt('E:/003.csv',dtype=np.float,skiprows=1,
                   delimiter=',',usecols=(0,1,2),unpack=False)

skiprows是指跳过的行数,我这里设为1,因为我的数据第一行是表头
delimiter=','表示数据的分隔符是逗号
usecols=(0,1,2)表示使用第0、1、2列数据,这里结合表的具体内容,我的表数据的三维坐标是第0、1、2列数据,所以……
unpack=False表示不把每一列当成一个向量输出,也就是一行数据就是一个向量,如果等于True就是一列数据是一个向量。我的数据是三维坐标,一行为一个向量。
【LiDar16】Open3D将CSV点云数据可视化并保存_第2张图片
最后输出的效果为
【LiDar16】Open3D将CSV点云数据可视化并保存_第3张图片

三、Numpy转Open3D

open3d官网有例程
仿照例程有

pcd = o3d.geometry.PointCloud()
pcd.points = o3d.utility.Vector3dVector(Data1)
print(np.asarray(pcd.points))
o3d.visualization.draw_geometries([pcd])

然后就是你的模型~
【LiDar16】Open3D将CSV点云数据可视化并保存_第4张图片

四、保存成3d模型

最后保存成open3d、pcl等点云库可直接读取的格式,比如ply、pcd什么的
o3d.io.write_point_cloud_cloud('E:/003.ply',pcd)

收官~

你可能感兴趣的:(python)