当前位置: 首页 > news >正文

第三课:Open3D点云数据处理:点云格式转换

1 Open3D点云格式介绍

1.1 xyz

1.2 xyzn

1.3 xyzrgb

1.4 pts

1.5 ply

1.6 pcd

2 点云格式转换

2.1 读取点云数据

​编辑

2.2 pcd转ply

2.3 pcd转xyz

2.4 pcd转xyzrgb

2.5 pcd转pts


1 Open3D点云格式介绍

1.1 xyz

每一行包含 [x y z] ,其中的x, y, z 是三维坐标,坐标之间以空格分隔。

1.2 xyzn

每一行包含[x, y, z, nx, ny, nz], 其中的nx,ny,nz是法向量

1.3 xyzrgb

每一行包含[x, y, z, r, g, b], 其中的r,g,b是范围在[0, 1]的float类型

1.4 pts

第一行为整数,表示点云中的点数。之后每行为点坐标及其属性,可以是[x, y, z, i, r, g, b][x, y, z, r, g, b][x, y, z, i]或者[x, y, z]格式,i代表反射强度intensity, 其中xyzi为doublel类型,rgbuint8类型 |

比较有特点的是,pts格式的点云,行与行之间以空白行分隔。

下面以[x, y, z, i, r, g, b]类型为例展示

1.5 ply

ply文件能够同时包含点云和网格数据,有binary和ASCII码两种编码类型。更多内容请查看 Polygon File Format,

二进制binary格式

ASCII码格式

1.6 pcd

pcd格式是PCL指定的点云格式,更多内容请查看 Point Cloud Data

同样的,pcd也有binary和ASCII码两种编码。

binary编码

ASCII编码

2 点云格式转换

open3d进行点云格式转换,不涉及数据格式 ,直接保存为想要的类型即可。下面以pcd点云转换为其他格式的点云为例,进行示范。

2.1 读取点云数据

import open3d as o3d import numpy as np print("->正在加载点云... ") pcd = o3d.io.read_point_cloud(r"H:\HTempWK\temp\open3d\pointdata\Armadillo\Armadillo.pcd") print(pcd) print("->正在可视化点云") o3d.visualization.draw_geometries([pcd])

2.2 pcd转ply

import open3d as o3d print("->加载pcd点云...") pcd = o3d.io.read_point_cloud(r"H:\HTempWK\temp\open3d\pointdata\bunny.pcd") print(pcd) print("->正在可视化点云") o3d.visualization.draw_geometries([pcd]) print("\n->保存为binary类型的ply点云...") o3d.io.write_point_cloud("H:/HTempWK/temp/open3d/data/savebunnyBinary.ply", pcd) # 读取保存得二进制点云数据进行展示 pcd_from_file = o3d.io.read_point_cloud("H:/HTempWK/temp/open3d/data/savebunnyBinary.ply") print("->正在可视化保存的点云...") o3d.visualization.draw_geometries([pcd_from_file]) print("\n->保存为ASCII码类型的ply点云...") o3d.io.write_point_cloud("H:/HTempWK/temp/open3d/data/savebunnyASCII.ply", pcd, write_ascii = True) # 读取保存得ASCII码点云数据进行展示 pcd_from_file = o3d.io.read_point_cloud("H:/HTempWK/temp/open3d/data/savebunnyASCII.ply") print("->正在可视化保存的点云...") o3d.visualization.draw_geometries([pcd_from_file])

2.3 pcd转xyz

import open3d as o3d print("->加载pcd点云...") pcd = o3d.io.read_point_cloud(r"H:\HTempWK\temp\open3d\pointdata\bunny.pcd") # 显示点云 o3d.visualization.draw_geometries([pcd]) print("\n->保存xyz点云...") o3d.io.write_point_cloud(r"H:\HTempWK\temp\open3d\pointdata\bunny.xyz", pcd) print("->保存xyz点云完成") # 读取点云进行展示 pcd_from_file = o3d.io.read_point_cloud(r"H:\HTempWK\temp\open3d\pointdata\bunny.xyz") o3d.visualization.draw_geometries([pcd_from_file])

2.4 pcd转xyzrgb

import open3d as o3d import numpy as np pcd_path = r"H:\HTempWK\temp\open3d\pointdata\bunny.pcd" xyzrgb_path = r"H:\HTempWK\temp\open3d\pointdata\bunny.xyzrgb" pcd = o3d.io.read_point_cloud(pcd_path) points = np.asarray(pcd.points) z = points[:, 2] # 归一化到 0~1 z_norm = (z - z.min()) / (z.max() - z.min()) # 蓝 → 红 渐变 colors = np.zeros((len(points), 3)) colors[:, 0] = z_norm # R colors[:, 2] = 1 - z_norm # B pcd.colors = o3d.utility.Vector3dVector(colors) o3d.io.write_point_cloud(xyzrgb_path, pcd, write_ascii=True) pcd_from_file = o3d.io.read_point_cloud(xyzrgb_path) o3d.visualization.draw_geometries([pcd_from_file])

2.5 pcd转pts

import open3d as o3d print("->加载pcd点云...") pcd = o3d.io.read_point_cloud(r"H:\HTempWK\temp\open3d\pointdata\bunny.pcd") print(pcd) print("->正在可视化点云") o3d.visualization.draw_geometries([pcd]) print("\n->保存pts点云...") o3d.io.write_point_cloud(r"H:\HTempWK\temp\open3d\pointdata\bunny.pts", pcd) # 读取pts数据进行展示 pcd_from_file = o3d.io.read_point_cloud(r"H:\HTempWK\temp\open3d\pointdata\bunny.pts") o3d.visualization.draw_geometries([pcd_from_file])
http://www.jsqmd.com/news/160962/

相关文章:

  • NumPy与PyTorch互操作:在PyTorch-CUDA-v2.7中高效交换数据
  • 2025年12月安徽淮北淮北无人机表演、淮北CAAC无人机培训、淮北政企无人机培训、淮北退役军人无人机培训、淮北无人机培训排行榜 - 2025年品牌推荐榜
  • 多GPU并行训练入门:PyTorch-CUDA-v2.7镜像支持多卡配置
  • 2025中港直通车服务指南:粤港澳跨境包车/中港直通车包车服务无忧出行首选公司 - 品致汇
  • 第四课Open3D点云数据处理:读写网格模型(mesh)与格式转换
  • 清华TUNA镜像站加速PyTorch-CUDA-v2.7下载实测
  • C语言随堂笔记-8
  • 2025年粉体自动拆包机供应商/生产厂家推荐与采购指南 - 品牌推荐大师1
  • 第五课-Open3D点云数据处理:点云、mesh可视化(draw_geometries方法)
  • 2025年粤港澳跨境出行核心攻略:中港车牌代办与粤Z车牌代办公司权威推荐 - 品致汇
  • Leetcode 56.合并区间 JavaScript (Day 6)
  • 多线程任务管理系统
  • 如何定制自己的PyTorch-CUDA镜像?基于v2.7二次开发指南
  • 第六课Open3D点云数据处理:点云、mesh可视化(Visualizer类)
  • WSL2下运行PyTorch-CUDA-v2.7镜像的完整配置流程
  • Conda环境导出与导入:PyTorch-CUDA-v2.7跨机器迁移技巧
  • 软件工程 课程回顾 102301321 吴颖哲
  • Git克隆项目后如何快速运行?配合PyTorch镜像免依赖烦恼
  • 2025年12月淮北无人机表演、淮北CAAC无人机培训、淮北政企无人机培训、淮北退役军人无人机培训、淮北无人机培训机构哪家强 - 2025年品牌推荐榜
  • CNN图像分类项目快速上手:基于PyTorch-CUDA-v2.7镜像教程
  • 中性点直流偏磁在线监测推荐生产厂家 - 品牌推荐大师1
  • 无需手动编译:PyTorch-CUDA-v2.7镜像自动匹配驱动版本
  • Anaconda配置PyTorch环境太麻烦?试试PyTorch-CUDA-v2.7镜像
  • Linux软链接应用详解:从原理到实战案例
  • 傅里叶变换(四):直角坐标与极坐标
  • PyTorch官方安装步骤太复杂?这个镜像简化90%流程
  • 轻量级深度学习环境:PyTorch-CUDA-v2.7仅需2分钟启动
  • 手把手教学:在云平台拉取并运行PyTorch-CUDA-v2.7镜像
  • 2026年上半年徐州室内装修/室内设计/全屋定制/精装局改/软装搭配公司综合评估与选型指南 - 2025年品牌推荐榜
  • Markdown笔记记录实验过程:配合Jupyter和PyTorch镜像高效科研