激光雷達點雲bin文件讀取和顯示! |
首先聲明文章主要參考:Ronny Restrepo!其中包括如下的內容。
- 點雲數據的介紹
- 圖像和點雲座標系
- 點雲鳥瞰圖生成
- 點雲360°全視圖
- 基於Mayavi的交互式三維可視化
- 基於Matplotlib的交互式三維可視化
一. 代碼
- 這裏讀取的是KITTI數據集中的.bin文件。
import mayavi.mlab
import torch
import numpy as np
mypointcloud=np.fromfile("/media/zhang/data/KITTI/KittiDataset/training/velodyne/000001.bin",dtype=np.float32,count=-1).reshape([-1,4])
mypointcloud=torch.from_numpy(mypointcloud)
print(mypointcloud.size())
print(mypointcloud.type())
def viz_mayavi(points,vals="distance"): # 可視化只用到了3維數據(x,y,z)!
x=points[:,0]
y=points[:,1]
z=points[:,2]
r=points[:,3]
d=torch.sqrt(x**2+y**2)
if vals=="height":
col=z
else:
col=d
fig=mayavi.mlab.figure(bgcolor=(0,0,0),size=(1280,720))
mayavi.mlab.points3d(x,y,z,
col,
mode="point",
colormap='spectral',
figure=fig,
)
mayavi.mlab.show()
if __name__=="__main__":
viz_mayavi(mypointcloud,vals="height")
二. 結果
/home/zhang/anaconda3/envs/second/bin/python /home/zhang/PycharmProjects/my_test/one.py
torch.Size([115384, 4])
torch.FloatTensor