文件IO

本教程介绍了Open3D如何读写基本数据结构。

点云(Point Cloud)

下面读取和写入点云的实力。

# -*-coding:utf-8 -*-import open3d as o3d# 读取点云
pcd = o3d.io.read_point_cloud("fragment.pcd")
# 打印点云的摘要信息
print(pcd)
# 写点云
o3d.io.write_point_cloud("copy_of_fragment.pcd", pcd)

默认情况下,Open3D尝试通过文件扩展名来推断文件类型。 支持以下点云文件类型:

Format Description
xyz 每一行包括 [x,y,z] 三个值,x,y,z 是三维坐标
xyzn 每一行包括 [x,y,z,nx,ny,nz] 六个值,其中nx,ny,nz 是法线
xyzrgb 每一行包括 [x,y,z,r,g,b] 六个值,这里r,g,b的范围在[0,1]浮动
pts 第一行是一个整数,表示点的个数。之后每一行包括 [x,y,z,i,r,g,b] 七个值,其中rgb的类型为uint8
ply 这个格式可以包含点云和网格数据,详情请参考这个链接
pcd 详情请参考链接

也可以显示的指定文件类型,这样将会忽略文件扩展名。

pcd =o3d.io.read_point_cloud("fragment.txt",format='xyz')

网格(Mesh)

通过以下代码可以读写网格数据。

# -*-coding:utf-8 -*-import open3d as o3d# 读取网格
mesh = o3d.io.read_triangle_mesh("knot.ply")
# 打印网格的摘要信息
print(mesh)
# 写网格
o3d.io.write_triangle_mesh("copy_of_knot.ply",mesh)

与点云的数据结构相比,网格(mesh)数据具有定义三维曲面的三角形。与点云数据一样,会自动通过文件类型推断,支持的mesh数据格式如下。

格式 描述
ply 同点云
stl 请看链接
obj 请看链接
off 请看链接
gltf 请看链接

图像(Image)

通过以下代码可以读写图像数据

# -*-coding:utf-8 -*-import open3d as o3d# 读取图片
img = o3d.io.read_image("/home/pi/Desktop/pcl/Open3D/examples/test_data/lena_color.jpg")
# 打印图片的摘要信息
print(img)
# 写图片
o3d.io.write_image("copy_of_lena_color.jpg", img)

使用print(img)可以很容易的显示图像的大小。

同时支持jpg和png图像文件。

Open3d之文件IO相关推荐

  1. linux文件IO与内存映射:分散/聚集IO技术(scatter-gather)

    前言 根据上文我们学习到的用户空间的IO缓冲区,操作系统为了减少系统调用的次数,节省系统开销,提出了用户空间的IO缓冲区,即为用户空间的文件读写开辟一段可以利用setvbuf配置大小的内存空间来作为文 ...

  2. Mysql 宕机引发索引丢失很可怕,文件 IO 中如何保证掉电不丢失数据?

    欢迎关注方志朋的博客,回复"666"获面试宝典 众所周知,存储设计离不开文件 IO,将数据存储到文件中进行持久化,是大多数消息队列.数据库系统的常规操作.为了更贴近实际的生产场景, ...

  3. 文件 IO 中如何保证掉电不丢失数据?

    前言 好久没有分享文件 IO 的小技巧了,依稀记得上次分享还是在上次. 第二届云原生编程挑战赛正在火热进行中,Kirito 也在做<针对冷热读写场景的RocketMQ存储系统设计>这个题目 ...

  4. python和R文件IO操作对比及dataframe创建方式对比:read_csv、to_csv、write.csv、 data.frame、pd.DataFrame

    python和R文件IO操作对比及dataframe创建方式对比 很多工程师可能刚开始的时候只熟悉python或者R其中的一个进行数据科学相关的任务. 那么如果我们对比这学习可以快速了解语言设计背后的 ...

  5. APUE(第三章)文件IO

    引言 本章主要讲文件IO包括:open.read.write.lseek以及close.这些函数通常被称为不带缓冲的IO,不带缓冲至每个read与write都有内核中的一个系统调用.这些不是ISO C ...

  6. (理论篇)从基础文件IO说起虚拟内存,内存文件映射,零拷贝

    为了快速构建项目,使用高性能框架是我的职责,但若不去深究底层的细节会让我失去对技术的热爱. 探究的过程是痛苦并激动的,痛苦在于完全理解甚至要十天半月甚至没有机会去应用,激动在于技术的相同性,新的框架不 ...

  7. linux的每次IO大小控制,linux文件io缓冲

    linux文件io缓冲 出于速度和效率考虑,系统io调用(即内核)和标准 C语言库的io函数(即 stdin 函数)在操作磁盘文件时会对数据进行缓冲. read(),write()系统调用在操作磁盘文 ...

  8. [转]文件IO详解(二)---文件描述符(fd)和inode号的关系

    原文:https://www.cnblogs.com/frank-yxs/p/5925563.html 文件IO详解(二)---文件描述符(fd)和inode号的关系 ---------------- ...

  9. 漫谈linux文件IO

    在Linux 开发中,有几个关系到性能的东西,技术人员非常关注:进程,CPU,MEM,网络IO,磁盘IO.本篇文件打算详细全面,深入浅出.剖析文件IO的细节.从多个角度探索如何提高IO性能.本文尽量用 ...

最新文章

  1. codevs 2639 约会计划
  2. webView loadData 中文乱码问题
  3. 去除JSP页面中JSTL、EL生成的空行
  4. flex布局学习笔记
  5. 制作linux安装镜像文件,制作CentOS 6.5一键自安装ISO镜像光盘 | 聂扬帆博客
  6. 华为大数据战略_任正非:华为应抓住“大数据”机遇 抢占战略制高点
  7. Django中加载static无法成功的解决方法
  8. 如何给域里的每台电脑分配一个***远程访问IP地址
  9. linux 更换 镜像源
  10. [代码整洁之道].(美)马丁.扫描版pdf
  11. 安装ssd后不识别网卡_安装固态硬盘后读不出来,怎么解决?
  12. php电商订单模块设计,电商后台订单管理模块
  13. java try catch 输入字符串_java – 没有在try / catch中捕获NumberFormatException
  14. 【Hardware】【磁保持继电器基础知识】
  15. 外网电脑配置8G运行内存,运行Android Studio,速度很轻松
  16. 快速回复信息神器哪些支持一键复制粘贴回复
  17. numpy.random.randn()与rand()的区别
  18. ORACLE查询某一字段重复的数据
  19. 平凡世界中每一个平凡人
  20. 桌面下面有计算机 网络,台式电脑怎么连接手机网络 桌面下方的任务栏会自动弹出...

热门文章

  1. 使用 vs 2008 宏制作自动注释工具
  2. 3 个 Zabbix常见问题的处理方法
  3. Linux 禁止和开启 ping 的方法
  4. shell脚本中$* 和 $@ 区别
  5. Linux 的 复制命令 【 cp 】 (copy)及其 (常用参数 -fp)
  6. 大规模数据运行时,可以考虑使用多线程处理!
  7. 力扣题目——98. 验证二叉搜索树
  8. 【Oracle】表级别分区操作对索引(本地分区索引,全局分区索引,非分区索引)的影响
  9. 20190616 IDEA-每次修改JS文件都需要重启Idea才能生效解决方法
  10. 后端CORS解决跨域问题