实现pcd文件生成bin文件

前言

点云作为三维空间中点的集合,广泛应用于计算机视觉、自动驾驶、无人机测绘、虚拟现实等多个领域。在这些应用中,高效、紧凑的点云数据存储和传输显得尤为重要。.bin文件格式因其无冗余头信息、二进制存储的高效性而被广泛用于存储点云数据。本篇博客将详细介绍如何从原始点云数据出发,生成适合高效处理和传输的.bin文件。

1. 环境准备

确保你的开发环境中安装了Python。你可以从Python官方网站下载并安装最新版本的Python。接下来,你需要安装一些必要的库,如numpy和open3d,这两个库分别用于数学计算和点云数据的可视化处理

`pip install numpy open3d`

2、加载点云数据

def read_pcd(pcd_path):
    lines = []
    num_points = None

    with open(pcd_path, 'r') as f:
        for line in f:
            lines.append(line.strip())
            if line.startswith('POINTS'):
                num_points = int(line.split()[-1])
    assert num_points is not None

    points = []
    for line in lines[-num_points:]:
        x, y, z, i = list(map(float, line.split()))
        #这里没有把i放进去,也是为了后面 x, y, z 做矩阵变换的时候方面
        #但这个理解我选择保留, 因为可能把i放进去也不影响代码的简易程度
        points.append((np.array([x, y, z, i])))

    return points

3、bin文件加载可视化

bin_file ="point.bin"
points  = np.fromfile(str(bin_file), dtype=np.float64).reshape(-1, 4)

pts = o3d.geometry.PointCloud()    
pts.points = o3d.utility.Vector3dVector(points[:, :3])

o3d.visualization.draw_geometries([pts])

源码下载:

关注我的公众号auto_driver_ai(Ai fighting), 第一时间获取更新内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值