点云格式介绍(一)

本文介绍了点云的基本组成,包括空间坐标、强度值、色彩信息等。重点讲解了pcd文件的结构,包括文件说明和点云数据部分,并提供了python读取pcd文件的方法及可视化效果。此外,还提到了点云系列文章的后续内容,如ply、txt、bin文件的介绍。
摘要由CSDN通过智能技术生成

本文为博主原创文章,未经博主允许不得转载。
本文为专栏《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”。

根据引用,e57是一种点云数据格式,可以通过转换工具将其转换成其他格式,比如txt和pcd格式。为了方便转换,可以使用Point Cloud Library(PCD)或者FME软件来进行转换。PCD是一个用于点云数据处理的开源库,可以支持e57格式的转换。而FME是一种专门用于数据转换和处理的软件,在其新版本中增加了对e57格式的支持,可以使用其中的转换器进行格式转换。根据引用中的描述,FME在点云数据处理中的应用也很广泛,可以完成常见的点云处理任务。因此,无论是使用PCD还是FME,都可以实现e57点云数据格式的转换。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [激光点云格式转换](https://download.csdn.net/download/wangguo0123/5478231)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [FME中点云转换器介绍(一)](https://blog.csdn.net/fmechina/article/details/81000996)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coding的叶子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值