Nuscenes LiDAR数据格式 与读取显示

本文介绍如何读取 Nuscenes 数据集中的 Lidar 数据,并利用 Python 的 open3d 库进行三维点云可视化。文章提供了从二进制文件中解析 Lidar 数据的具体代码示例,展示了如何将解析后的数据转换为点云并可视化。

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

nuscenes lidar数据存储格式 :(x,y,z,intensity,ring index)

 

读取 Nuscenes 数据并显示:

import os
import numpy as np
import struct
import open3d

def read_bin_velodyne(path):
    pc_list=[]
    with open(path,'rb') as f:
        content=f.read()
        pc_iter=struct.iter_unpack('fffff',content)
        for idx,point in enumerate(pc_iter):
            pc_list.append([point[0],point[1],point[2]])
    return np.asarray(pc_list,dtype=np.float32)

def main():
    root_dir='data/'
    filename=os.listdir(root_dir)
    file_number=len(filename)

    pcd=open3d.open3d.geometry.PointCloud()

    for i in range(file_number):
        path=os.path.join(root_dir, filename[i])
        print(path)
        example=read_bin_velodyne(path)
        # From numpy to Open3D
        pcd.points= open3d.open3d.utility.Vector3dVector(example)
        open3d.open3d.visualization.draw_geometries([pcd])

if __name__=="__main__":
    main()

 

 

读取Nuscenes一个文件,具体使用方案参考官网及其他材料:

from nuscenes.nuscenes import NuScenes
nusc = NuScenes(version='v1.0-mini', dataroot='/media/guoan/Elements/nuscenes/v1.0-mini', verbose=True)
my_scene = nusc.scene[0]
first_sample_token = my_scene['first_sample_token']
my_sample = nusc.get('sample', first_sample_token)
sensor = 'LIDAR_TOP'
lidar_top_data = nusc.get('sample_data', my_sample['data'][sensor])
print(lidar_top_data)
str='/media/guoan/Elements/nuscenes/v1.0-mini/'+lidar_top_data['filename']
f = open(str, "rb")
data = f.read() #每次输出一个字节
print(data)

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值