使用python的open3d库读取Bin格式点云并可视化

Python有很多库都可以处理点云,比如Python-PCL、Open3D等等。

  1. Python-PCL库已经很久没有维护了,而且安装极其麻烦
  2. Open3D是由intel发布的3D点云可视化库,点云可视化和渲染都很方便,重要的是安装方便!!!

1. 安装Python Open3D

环境:Ubuntu 16.04

pip install open3d==0.9.0.0

注意: open3d 0.9.0.0 只支持python 2.7,3.5,3.6,3.7。如果直接安装0.10.0及以上的版本会报如下错误:

ImportError: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27’ not
found (required by
/home/xxxx/xxxx/lib/python3.7/site-packages/open3d/open3d_pybind.cpython-37m-x86_64-linux-gnu.so)

参考:Ubuntu 16.04 安装 open3d

2. 使用Open3D读取bin格式的点云文件

# bin文件为2进制文件
lidar_path = '000000.bin'
# reshape成 N*4,然后去掉最后1列(一般是反射率或其它值),只保留前3列
points = np.fromfile(lidar_path, dtype=np.float32).reshape(-1, 4)
points = points[:, 0:3]
# 创建open3d PointCloud对象
cloud = o3d.geometry.PointCloud()  
# 将numpy array转换为PointCloud格式
cloud.points = o3d.utility.Vector3dVector(points)  

参考:open3d numpy array 转换为point cloud

3. 可视化点云

可用如下这条指令直接显示:

# 可用这条指令直接显示
o3d.visualization.draw_geometries([cloud], window_name="Open3D") 

如果想配置其它可视化的参数,可参考以下代码:

# 创建窗口对象
vis = o3d.visualization.Visualizer()
# 设置窗口标题
vis.create_window(window_name="Open3D")
# 设置点云大小
vis.get_render_option().point_size = 1
# 设置颜色背景为黑色
opt = vis.get_render_option()
opt.background_color = np.asarray([0, 0, 0])
# 设置点的颜色为白色
cloud.paint_uniform_color([1, 1, 1])
# 将点云加入到窗口中
vis.add_geometry(cloud)

vis.run()
vis.destroy_window()

参考:【Open3D】点云可视化

4. 点云上色

注意: Open3D中点云的RGB颜色范围为[0, 1],数值类型为float64。
参考:

  1. 根据点云高度赋色(附open3d python代码)
  2. 采用Open3d绘制高度颜色点云图
  3. Open3d之点云上色

5. 可视化窗口操作

参考:open3d点云可视化及窗口操作(自用)

6. 实时显示点云

参考:

  1. Open3D实时点云显示
  2. 连续帧点云动画显示
  3. 用python实现多帧点云文件的播放

7.以固定视角显示点云(保存/读取视角参数)

参考:open3d连续读取pcd文件及实现点云视角转换

可重点学习以下博文,写的都很全面:

  1. 【Open3d】使用open3d可视化(如果是搞点云语义分割的,重点推荐这篇)
  2. 【API】Open3D库的使用教程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值