3D点云存储方式的种类较多,包括pcd、ply、txt、bin、obj等格式,各种点云格式的详细介绍请参考之前的博客:点云格式介绍(更新中,待补充)_Coding的叶子的博客-CSDN博客_txt点云格式。本节主要介绍ply格式转bin。

1 安装环境

本文介绍的方法来源于mmdetection3d,依赖于python库plyfile,安装方法如下:

pip install plyfile

2 示例代码

ply点云示例文件下载地址为:ply格式点云样例文件_pcd.estimate_normals-深度学习文档类资源-CSDN下载。

# -*- coding: utf-8 -*-
"""
乐乐感知学堂公众号
@author: https://blog.csdn.net/suiyingy
"""import numpy as np
import pandas as pd
from plyfile import PlyDatadef convert_ply(input_path, output_path):plydata = PlyData.read(input_path)  # read filedata = plydata.elements[0].data  # read datadata_pd = pd.DataFrame(data)  # convert to DataFramedata_np = np.zeros(data_pd.shape, dtype=np.float)  # initialize array to store dataproperty_names = data[0].dtype.names  # read names of propertiesfor i, name in enumerate(property_names):  # read data by propertydata_np[:, i] = data_pd[name]data_np.astype(np.float32).tofile(output_path)if __name__ == '__main__':convert_ply('bun_zipper.ply', 'bun_zipper.bin')

可以看到,ply转bin的过程就是读取ply中的点云数据为numpy矩阵形式,然后直接保存为bin格式就可以了。因此,ply格式读取并不一定需要plyfile库,也可以是之前介绍的open3d库,或者不适用任何库,直接用with open打开文件读取即可。关于ply文件的各种读取方法,以及ply和bin格式的详细介绍请参考之前的博客。

3 其他格式转ply

其他格式的点云文件 (例如:off, obj),可以使用 trimesh 将它们转化成 ply,也可以按照之前博客中用open3d保存为ply格式点云。同样地,必须首先安装trimesh,即pip install trimesh。

import trimeshdef to_ply(input_path, output_path, original_type):mesh = trimesh.load(input_path, file_type=original_type)  # read filemesh.export(output_path, file_type='ply')  # convert to ply
to_ply('./test.obj', './test.ply', 'obj')

4 【python三维深度学习】python三维点云从基础到深度学习_Coding的叶子的博客-CSDN博客_python三维点云重建

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

【点云格式互转】ply转bin、任意点云格式转ply相关推荐

  1. 2020-12-11 图片格式互转:base64、PIL Image opencv cv2互转

    图片格式互转:base64.PIL Image opencv cv2互转 base64 to PIL Image import base64 from io import BytesIO from P ...

  2. SAP中ABAP格式与JSON格式互转方法研究

    一.JSON概念 JSON(JavaScript Object Notation) 是一种轻量级的 数据交换 格式. JSON数据格式示例: { "学生": [ {"姓名 ...

  3. 05 hex 格式_SREC、Hex、Bin等烧录文件格式完全解读

    ↑点击上方蓝色字体,关注"嵌入式软件实战派"获得更多精品干货. ▍1. 关于烧录文件 在典型的应用程序中,编译器或汇编器将程序的源代码(例如C或汇编语言)转换为机器代码,并将其输出 ...

  4. 目标检测各类数据集格式互转以及处理方法(VOC, COCO, txt)

    数据集互转目录 coco转voc格式 voc转coco格式 voc数据格式的处理 txt注释格式转coco 在做目标检测时,我个人比较喜欢VOC格式的数据集,所以遇到COCO格式的数据集习惯转为VOC ...

  5. 两个云服务器怎么互传文件,两个云服务器互传数据

    两个云服务器互传数据 内容精选 换一换 云上容灾有三种场景,如表1所示.跨AZ容灾的方案如图1所示.该架构适用云上同城容灾,要求RPO等于0的场景.该方案下,RPO等于0,RTO小于30分钟.在平时业 ...

  6. jacob xls与xlsx格式互转

    一.jacob使用前准备 1.jacob官网下载jacob(下载之后具体的使用请自行百度,网上很多关于jacob使用的文章) 2.安装office(jacob实现格式转换的本质是调用office另存为 ...

  7. threejs 导出obj_Three.js保存导出.ply、.obj、.GLTF等格式三维模型

    Three.js保存导出.ply..obj..GLTF等格式三维模型 无论Three.js加载的任意格式三维模型,还是通过Threejs的API创建的一个三维模型,都可以导出为一个文件保存三维场景的数 ...

  8. CAD图纸格式,DWG、DXF格式互转

    令人头痛的是我在日常CAD制图工作中,常常会遇到各种CAD版本转换问题.DWG.DXF格式的CAD图纸互转就是其中之一.现在给大家简单的演示一下.演示操作如下: 1.浏览器搜索CAD官网,进入下载CA ...

  9. ZigBee 3.0实战教程-Silicon Labs EFR32+EmberZnet-3-06:不同格式固件的区别:bin/hex/s37/gbl

    [ 源码. 文档. 软件. 硬件. 技术交流. 技术支持, 入口见 文末] [所有相关 IDE. SDK和 例程源码均可从群文件 免费获取, 免安装, 解压即用] 持续更新中,欢迎关注! 一.编译生成 ...

最新文章

  1. 数据为王的时代,如何用图谱挖掘商业数据背后的宝藏?
  2. iOS应用崩溃日志分析 iOS应用崩溃日志揭秘
  3. 老师,你和我的文具撞衫了!
  4. oracle对某两列求和再求和_函数实战:多列条件求和
  5. ipad如何连接电脑_电脑无法连接外网远程调试,一文教你如何用手机让台式机连接外网...
  6. java内存模型及GC原理
  7. cmd bat 相对命令
  8. uniapp进行H5微信支付
  9. ROS2机器人笔记20-08-15
  10. 手机计算机都无法上网,手机能上网但win7电脑不能上网怎么回事?
  11. Linux编程经典实例,PyQt4 精彩实例分析 - 实例1 Hello Kitty! _Linux编程_Linux公社-Linux系统门户网站...
  12. 智能手机业务的最新发展趋势
  13. GDOU geek alan 简单java代码:三个和尚身高问题
  14. 回程静态路由及trunk简单链路
  15. 过河问题(贪心算法)(python)
  16. 系统渗透与防护——信息收集与暴力破解
  17. 穿上钢铁侠战衣变身钢铁侠,现代表示我做到了!
  18. 杀怪物(dfs)题解
  19. 2021年十佳优惠券返利APP排名榜 2021年用户喜欢的优惠券返利APP前10排行榜
  20. C语言 | getchar()、getche()、getch()的区别?

热门文章

  1. 面试题:你能写一个Vue的双向数据绑定吗?
  2. Linux 静态代码检查工具:sparse 的安装和使用
  3. 3704对象关闭时_运行时出现了“对象关闭时不允许操作”实时错误3704,请问大家怎么改呢?...
  4. 电商卖车或成趋势,拼多多卖“劳斯莱斯“就是正确的吗?
  5. 鸿蒙系统在华为应用商店,华为P40或用鸿蒙系统 有自己的应用市场和移动服务...
  6. 计算机不能联网怎么设置吗,已连接(不可上网)怎么办?
  7. 区块链技术在金融领域的应用
  8. myeclipse 2013 下载安装加破解
  9. MySQL数据库的锁详解
  10. 怎么把外部参照合并到图纸_为什么在CAD图纸中插入外部参照后会出现多余图形?...