我有一个 32 字节二进制大端格式的 LiDAR 数据集,我需要将其转换为 python 列表或数组,然后将其转换为 PCD 文件。我目前正在使用以下代码,但它仅适用于 16 字节。
我应该进行哪些修改才能让代码适用于 32 字节大端文件? 这是我正在使用的文件的链接。
import open3d as o3d
import numpy as np
import os
import sys
import struct
size_float = 4
list_pcd = []
with open ("C:\\Users\\wilso\\python\\datasets\\DOTX182013031901004142612.log", "rb") as f:
byte = f.read(size_float*4)
while byte:
x,y,z,intensity = struct.unpack("ffff", byte)
list_pcd.append([x, y, z])
byte = f.read(size_float*4)
np_pcd = np.asarray(list_pcd)
pcd = o3d.geometry.PointCloud()
v3d = o3d.utility.Vector3dVector
pcd.points = v3d(np_pcd)
o3d.io.write_point_cloud("copy_of_fragment.pcd", pcd)