点云的三种可视化方法

1 点云介绍

点云数据是来自斯坦福大学的 HDF5 格式数据。HDF5 格式是用于存储和分发科学数据的一种多对象文件格式。可以用 HDFView 打开文件,查看数据。


1
www = 'https://shapenet.cs.stanford.edu/media/modelnet40_ply_hdf5_2048.zip


点云还有 PLY 格式:PLY 文件格式是 Stanford 大学开发的一套三维 mesh 模型数据格式,图形学领域最初很多模型都是基于此格式,我使用了此格式的点云物体文件进行了部分物体的参考和对比。

点云还有 PCD 格式:一种新的 3D 点云数据文件格式,是当初为了解决某些不支持 PCL 为 3D 点云处理进行的文件扩展。他的文件头部具有固定格式,必须用 ASCII 编码,包含标题、对点云数据的某些属性的声明。PCD 文件可以使用 PCL 库里的 PCL_Viewer 打开,从而直接查看到点云的三维图像。

MAC 上的 PCL_Viewer 需要装 PCL 库,当时配置的一些问题记录在博客里了。PCL 在 Mac 上环境问题

2 可视化方法

2.1 Matplotlib 方法


1
2
3
4
5
6
7
8
9
10
11
12
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# point_range = range(0, points.shape[0], skip) # skip points to prevent crash
point_range = range(0, points.shape[0])
ax.scatter(points[point_range, 0], # x
points[point_range, 1], # y
points[point_range, 2], # z
c=points[point_range, 2], # height data for color
cmap='spectral',
marker="x")
ax.axis('scaled') # {equal, scaled}
plt.show()


效果如下:

2.2 PCD 格式转化用 PCL_Viewer 可视化

对 HDF5 格式的数据进行了重写为 PCD 文件格式,主要 就是将数据写入的时候需要满足 PCD 文件顶头部分的特定格式。PCL_viewer 是可视化点云文件的 PCL 工具,它需要用到 PCL 库里的 vtk 库进 行可视化。

详情见我的 github 项目里 点云分类 的 H5toPcd.py。

2.3 Three.js 网页可视化

首先构建一个场景,遍历添加 3D 点云的所有 点到场景里,并给点赋值颜色 RGB 值和材质,其实场景就是物体的一个容器。然后设置好相机,相机的角度决定了场景中某一角度的 3D 点云物体的图像。相机对 旋转的点云拍照,从而渲染显示在页面上即可看到可视化的点云物体了。最后设置 好渲染器。使用渲染器的 render (scene, camera) 函数,设置渲染器的像素和页面元 素大小,渲染器将相机拍到的图形渲染显示在页面的元素内,从而在页面中可以看到图像。

详情见 github 项目 点云分类网页展示 的 draw2.html

Reference

  1. 普林斯顿大学 Modelnet 官网,http://modelnet.cs.princeton.edu/ 2018 Princeton Vision &

    Robotics Labs ‒ Department of Computer Science

  2. PCL 官网,http://www.pointclouds.org/about/#open 2018/5/23

  3. Three.js 官网 https://threejs.org/ 2018/5/23

原文:


https://saruagithub.github.io/2020/01/16/20200116%E7%82%B9%E4%BA%91%E7%9A%84%E4%B8%89%E7%A7%8D%E5%8F%AF%E8%A7%86%E5%8C%96%E6%96%B9%E6%B3%95/

本文分享自微信公众号 - 小弧光黑板报(gh_ba6067dca33c)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章