点云格式介绍(四)

  常见点云存储方式有pcd、ply、txt、bin文件。本次主要介绍bin点云格式。

一、点云的基本组成

点云组成可以是以下几种形式数据的排列组合。

        (1)x、y、z:点云的空间坐标。

        (2)i:强度值,强度反应了点的密集成度。

        (3)r、g、b:rgb色彩信息。

        (4)a:a代表alpha(透明度)。

        (5)nx、ny、nz:n代表Normal,点云的法向量。

 二、bin文件

        bin文件与上一节的txt点云文件相似,前者以二进制形式存储,或者以文本形式存储。bin文件的好处是(1)不存在格式转换,精度不丢失;(2)不存在格式转换,读写速度快。

        与txt文件类似,其通常只含点云信息,不含文件说明部分。txt文件按行存储点的信息,而bin则是将全部数据合并为一个序列,也可以理解为一行。

        2.1 点云数据

        自动驾驶数据集KITTI中的点云文件为例,存储格式为bin文件。样例文件下载地址:bin格式点云样例文件-深度学习文档类资源-CSDN下载。

        2.2 python读取bin文件

        bin文件下载地址:bin格式点云样例文件-深度学习文档类资源-CSDN下载。

import numpy as np
points = np.fromfile('000001.bin', dtype=np.float32)
print(points[:100])

以下为前100个数据,可以看到每4个数据为一个点云数据,所以通常需要reshape成N行4列。

49.52  22.668  2.051  0.    49.428 22.814  2.05   0.    48.096 22.658
  2.007  0.05  47.813 22.709  1.999  0.    48.079 23.021  2.012  0.
 48.211 23.271  2.019  0.    46.677 22.71   1.964  0.    46.437 22.774
  1.958  0.12  46.075 22.776  1.947  0.18  45.994 22.826  1.945  0.18
 45.881 22.95   1.944  0.23  45.721 23.05   1.941  0.    45.763 23.252
  1.945  0.12  45.617 23.358  1.942  0.12  45.667 23.565  1.947  0.16
 45.65  23.738  1.949  0.28  45.586 23.796  1.948  0.11  45.591 23.981
  1.951  0.    48.238 25.569  2.055  0.05  43.789 23.385  1.888  0.14
 43.779 23.556  1.89   0.    43.784 23.737  1.893  0.    43.719 23.88
  1.894  0.    43.987 24.116  1.905  0.    43.024 23.763  1.871  0. 

         2.3 点云可视化源码与效果

from mayavi import mlab
import numpy as np

def viz_mayavi(points, vals="distance"):
    x = points[:, 0]  # x position of point
    y = points[:, 1]  # y position of point
    z = points[:, 2]  # z position of point
    fig = mlab.figure(bgcolor=(0, 0, 0), size=(640, 360))
    mlab.points3d(x, y, z,
                          z,          # Values used for Color
                          mode="point",
                          colormap='spectral', # 'bone', 'copper', 'gnuplot'
                          # color=(0, 1, 0),   # Used a fixed (r,g,b) instead
                          figure=fig,
                          )
    mlab.show()

if  __name__ == '__main__':
    points = np.fromfile('000001.bin', dtype=np.float32).reshape([-1, 4])
    viz_mayavi(points)

python三维点云研究计划_Coding的叶子的博客-CSDN博客_python 三维点云将按照以下目录持续进行更新……点云格式介绍、点云可视化、点云投影、生成鸟瞰图、生成前视图、点云配准、点云分割、三维目标检测、点云重建、深度学习点云算法……https://blog.csdn.net/suiyingy/article/details/124017716点云格式介绍(二)_Coding的叶子的博客-CSDN博客常见点云存储方式有pcd、ply、txt、bin文件。本节主要介绍ply点云格式。https://blog.csdn.net/suiyingy/article/details/124214755

点云格式介绍(三)_Coding的叶子的博客-CSDN博客常见点云存储方式有pcd、ply、txt、bin文件。本次主要介绍txt点云格式。https://blog.csdn.net/suiyingy/article/details/124226073

更多三维、二维感知算法和金融量化分析算法请关注“乐乐感知学堂”微信公众号,并将持续进行更新。

你可能感兴趣的:(三维点云,数据集,python,点云,python,bin)