Python读取pcd文件为numpy数组

  • pcd文件的格式
    • 读取pcd文件存储到numpy数组中
    • 补充

pcd文件的格式

1.第二行:每行数据的内容 可能是(X Y Z R G B)或者(X Y Z rgb  imx imy)
2.第三行:每个数据所占字节数的大小 一般为4
3.第四行:每个数据的类型 一般为float
4.第五行:每个维度包含数据的个数  一般为1
5.第六行:每个点云的点的个数(无序点云);每个点云的宽度(有序点云)
6.第七行:1(无序点云);每个点云的高度(有序点云)
7.第十一行:每个点的信息,以空格分隔

读取pcd文件存储到numpy数组中

import numpy as np
# 定义函数将pcd文件加载
def pcd_to_txt(file_path):pts = []# 打开文件,将数据加载到data中f = open(file_path, 'r')data = f.readlines()f.close()# 从第11行开始读取数据for line in data[11:]:line = line.strip('\n')xyzargb = line.split(' ')# x y z 为前三位(这里只需要读取前三位)x, y, z = [eval(i) for i in xyzargb[:3]]pts.append([x, y, z])#res的维度为输入点云个数*3res = np.zeros((len(pts), len(pts[0])), dtype=np.float32)for i in range(len(pts)):res[i] = pts[i]#由于pointnet++需要的点云数为1024 如果输入点的个数小于1024 需要用0填充if len(res) < 1024:choose = np.array(range(len(res)))choose = np.pad(choose, (0, 1024 - len(choose)), 'wrap')res = res[choose, :]#返回维度为1024*3的numpy数组return res

补充

上述代码只实现了对于点云XYZ坐标的读取,如果需要颜色或者法线信息,还需要读取后面几个维度的信息。

三维目标检测:(一)制作自己的ModelNet数据集(1.读取pcd文件为numpy数组)相关推荐

  1. 【三维目标检测】3DSSD(一)

    3DSSD三维目标检测模型发表在CVPR2020<3DSSD: Point-based 3D Single Stage Object Detector>.目前,基于体素的 3D 单级检测器 ...

  2. 【三维目标检测】Pointpillars(一)

    PointPillars是一种基于体素的三维目标检测算法,发表在CVPR2019<PointPillars: Fast Encoders for Object Detection from Po ...

  3. 【三维目标检测】Part-A2(一)

    Part-A2是商汤在CVPR 2020上发布的三维点云目标检测模型,来源于PointRCNN同一作者,论文名称<From Points to Parts 3D Object Detection ...

  4. 【三维目标检测】Second 模型 (一)

    Second算法是一种基于三维点云的目标检测算法.Second算法采用了几乎与Voxelnet三维目标检测算法完全一致的设计思路,主要差异表现在将Voxelnet CML(Convolutional ...

  5. 【三维目标检测】PointRCNN(一)

    PointRCNN是用于点云三维目标检测模型算法,发表在CVPR2019<PointRCNN: 3D Object Proposal Generation and Detection From ...

  6. ICCV2019论文点评:3D Object Detect疏密度点云三维目标检测

    ICCV2019论文点评:3D Object Detect疏密度点云三维目标检测 STD: Sparse-to-Dense 3D Object Detector for Point Cloud 论文链 ...

  7. CVPR2020论文解读:3D Object Detection三维目标检测

    CVPR2020论文解读:3D Object Detection三维目标检测 PV-RCNN:Point-Voxel Feature Se tAbstraction for 3D Object Det ...

  8. 三维目标检测算法原理

    三维目标检测算法原理 输入输出接口 Input: (1)图像视频分辨率(整型int) (2)图像视频格式(RGB,YUV,MP4等) (3)左右两边的车道线位置信息摄像头标定参数(中心位置(x,y) ...

  9. 【论文速读】基于图像的伪激光雷达三维目标检测

    点云PCL免费知识星球,点云论文速读. 标题:End-to-End Pseudo-LiDAR for Image-Based 3D Object Detection 作者:Rui Qian, Divy ...

最新文章

  1. treeview 保持选中状态
  2. Java的内存泄漏和垃圾回收机制
  3. debian6之eclipse和jdk安装
  4. Vim as Python IDE on windows(转)
  5. 神经网络参数量和计算量计算
  6. java中join的使用
  7. python获取页面隐藏元素_selenium操作隐藏的元素(python+Java)
  8. 安庆机器人编程选_安庆市首届中小学机器人创客竞赛举行 460名选手比智慧拼创新 科技感满满!...
  9. WordPress——SMTP Error: Could not authenticate.
  10. Spring源码之ApplicationContext(五)激活BeanFactory
  11. Vue笔记--高级入门
  12. Git 输入命令git branch -a 后怎么返回
  13. html工资计算页面模板,工资计算.html
  14. Ubuntu 18.04搭建Moodle
  15. 基于spss的偏相关分析(partial correlation analysis)
  16. fanuc机器人仿真软件roboguide-新建工程文件
  17. 根据图片名批量创建文件夹
  18. Android, App常用图标尺寸规范
  19. APS系统在注塑行业的应用
  20. java bt下载_bt: Java种子下载程序

热门文章

  1. 无痛苦减肥的一场春梦
  2. 微信截取下拉菜单图片时,下拉菜单总是消失,无法成功截取
  3. 代码随想录算法训练营day42 | 01背包问题,你该了解这些!,01背包问题,你该了解这些! 滚动数组 , 416. 分割等和子集
  4. rebalance的详细过程
  5. python爬虫实战之异步爬取数据
  6. ubuntu 16.04 配置Rime输入法(中州韵)
  7. 逻辑思维“战术与战略”
  8. 17.2.5 旋转和翻转图像
  9. C语言printf函数中#的用法
  10. 10 款免费的 Mac 屏幕录制工具