本文为博主原创文章,未经博主允许不得转载。
本文为专栏《python三维点云从基础到深度学习》系列文章,地址为“https://blog.csdn.net/suiyingy/article/details/124017716”。
常见点云存储方式有pcd、ply、txt、bin文件。本节主要介绍pcd点云格式。
一、点云的基本组成
点云组成可以是以下几种形式数据的排列组合。
(1)x、y、z:点云的空间坐标。
(2)i:强度值,强度反应了点的密集成度。
(3)r、g、b:rgb色彩信息。
(4)a:a代表alpha(透明度)。
(5)nx、ny、nz:n代表Normal,点云的法向量。
二、pcd文件
pcd点云格式是pcl库种常常使用的点云文件格式。一个pcd文件中通常由两部分组成:分别是文件说明和点云数据。
2.1 文件说明
文件说明由11行组成,如下所示。
# .PCD v0.7 - Point Cloud Data file format #点云文件说明
VERSION 0.7 #版本说明
FIELDS x y z #每个点组成,参考第一部分点云组成
SIZE 4 4 4 #Fileds种每个数据占用的字节数
TYPE F F F #Fileds数据对应的类型,F表示浮点类型,U表示无符号整型,I表示整型
COUNT 1 1 1 #Fields数据对应的维度
WIDTH 35947 #对于无序点云为点的数量,对于有序点云为一圈点的数量。
HEIGHT 1 #对于无序点云取值默认为1,对于有序点云为垂直方向上的点数,比如多少线雷达
VIEWPOINT 0 0 0 1 0 0 0 #点云获取的视点,用于坐标变换
POINTS 35947 #点的数量
DATA ascii #点云数据的存储类型,0.7版本支持两种存储方式:ascii和binary。
2.2 点云数据
从第12行开始为点云数据,每个点与上面的FIELDS相对应。
2.3 python读取pcd文件
pcd文件下载地址:pcd格式点云样例文件-深度学习文档类资源-CSDN下载。
def pcd_read(file_path):
lines = []
with open(file_path, 'r') as f:
lines = f.readlines()
return lines
file_path = 'rabbit.pcd'
points = pcd_read(file_path)
for p in points[:15]:
print(p)
2.4 读取结果
2.5 点云可视化源码与效果
# -*- coding: utf-8 -*-
"""
Created on Wed Apr 13 23:20:08 2022
@author: suiyingy
"""
from mayavi import mlab
import numpy as np
def pcd_read(file_path):
lines = []
with open(file_path, 'r') as f:
lines = f.readlines()
return lines
#将每一行数据分割后转为数字
def ls2n(line):
line = line.strip().split(' ')
return list(map(float, line))
def viz_mayavi(points):
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,
y, # 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__':
file_path = 'rabbit.pcd'
points = pcd_read(file_path)[11:]
points = list(map(lambda x: ls2n(x), points))
viz_mayavi(np.array(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更多三维、二维感知算法和金融量化分析算法请关注“乐乐感知学堂”微信公众号,并将持续进行更新。
本文为博主原创文章,未经博主允许不得转载。
本文为专栏《python三维点云从基础到深度学习》系列文章,地址为“https://blog.csdn.net/suiyingy/article/details/124017716”。