Open3d学习计划——2

在上篇文章,我们介绍了Open3D是什么,和Python版本的如何安装。本篇文章将介绍原文档中Open3D得基础用法,本文翻译文档为0.10.0版本open3d文档,更多之前版本的信息请去查阅官方文档,不同版本API会有少许不同,请注意(如果在使用中提示没有某个类或者函数,就去上篇文章找到官方文档接口,去看看是不是函数发生了变化)。

Python接口

本节将会介绍如何导入open3d包并打印帮助信息。通过下面的代码就可以导入open3d

import open3d as o3d   #导入open3d
pcd = 03d.io.read_point_cloud("../../TestData/ICP/cloud_bin_0.pcd")
print(pcd)
##打印: geometry::PointCloud with 198835 points.

这里是从open3d模块中导入read_point_cloud函数,该函数可以读取点云文件并返回一个Pointcloud实例。print(pcd)可以打印点云的简略信息。

使用内置的帮助功能

help(o3d)可以打印open3d模块文件

help(03d)
Help on package open3d:NAMEopen3dPACKAGE CONTENTScorej_visualizeropen3d_pybind
SUBMODULEScameracolor_mapcudageometryintegrationioodometryregistrationutilityvisualization
DATAnone = <open3d.open3d_pybind.NoneType object>
VERSION0.10.0.0
FILE/home/yixing/miniconda3/envs/open3d3/lib/python3.6/site-packages/open3d/__init__.py

打印open3d中某个类的描述

help(open3d.PointCloud)可以用来打印PointCloud类的描述。

help(o3d.geometry.PointCloud)

因为描述太长就不在这里粘贴出来,感兴趣的请自己尝试

打印open3d中某个函数的描述

help(open3d.io.read_point_cloud)提供了read_point_cloud函数的描述,主要包括输入参数和返回类型。

help(o3d.io.read_point_cloud)
Help on built-in function read_point_cloud in module open3d.open3d_pybind.io:read_point_cloud(...) method of builtins.PyCapsule instanceread_point_cloud(filename, format='auto', remove_nan_points=True, remove_infinite_points=True, print_progress=False)Function to read PointCloud from fileArgs:filename (str): Path to file.format (str, optional, default='auto'): The format of the input file. When not specified or set as ``auto``, the format is inferred from file extension name.remove_nan_points (bool, optional, default=True): If true, all points that include a NaN are removed from the PointCloud.remove_infinite_points (bool, optional, default=True): If true, all points that include an infinite value are removed from the PointCloud.print_progress (bool, optional, default=False): If set to true a progress bar is visualized in the consoleReturns:open3d.geometry.PointCloud

文件IO

这一节将会介绍基本几何图形的读取和写入

点云(Point Cloud)

通过下面的代码读写点云

print("Testing IO for point cloud ...")
pcd = o3d.io.read_point_cloud("../../TestData/fragment.pcd")
print(pcd)
o3d.io.write_point_cloud("copy_of_fragment.pcd", pcd)>>>>Testing IO for point cloud ...
>>>>geometry::PointCloud with 113662 points.

print()能用来显示点云的摘要.
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 请看官方给出的php文件,链接
也可以显示的指定文件类型,这样将会忽略文件扩展名。
pcd =o3d.io.read_point_cloud("../../my_points.txt",format='xyz')

网格(Mesh)

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

print("Testing IO for meshes ...")
mesh = 03d.io.read_triangle_mesh("../../TestData/knot.ply")
print(mesh)
o3d.io.write_triangle_mesh("copy_of_knot.ply",mesh)>>>>Testing IO for meshes ...
>>>>geometry::TriangleMesh with 1440 points and 2880 triangles.

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

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

图像(Image)

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

print("Testing IO for images ...")
img = o3d.io.read_image("../../TestData/lena_color.jpg")
print(img)
o3d.io.write_image("copy_of_lena_color.jpg", img)>>>>Testing IO for images ...
>>>>Image of size 512x512, with 3 channels.
>>>>Use numpy.asarray to access buffer data.

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

Open3d学习计划——2(使用帮助与IO)相关推荐

  1. Open3d学习计划—高级篇 7(颜色映射)

    Open3D是一个开源库,支持快速开发和处理3D数据.Open3D在c++和Python中公开了一组精心选择的数据结构和算法.后端是高度优化的,并且是为并行化而设置的. 本系列学习计划有Blue同学作 ...

  2. Open3d学习计划—高级篇 6(体素化)

    Open3D是一个开源库,支持快速开发和处理3D数据.Open3D在c++和Python中公开了一组精心选择的数据结构和算法.后端是高度优化的,并且是为并行化而设置的. 本系列学习计划有Blue同学作 ...

  3. Open3d学习计划—高级篇 5(RGBD融合)

    Open3D是一个开源库,支持快速开发和处理3D数据.Open3D在c++和Python中公开了一组精心选择的数据结构和算法.后端是高度优化的,并且是为并行化而设置的. 本系列学习计划有Blue同学作 ...

  4. Open3d学习计划—高级篇 4(多视角点云配准)

    本文为转载文章,原创作者为blue同学,可关注他的博客:https://blog.csdn.net/io569417668 Open3D是一个开源库,支持快速开发和处理3D数据.Open3D在c++和 ...

  5. Open3d学习计划—高级篇 3(点云全局配准)

    Open3D是一个开源库,支持快速开发和处理3D数据.Open3D在c++和Python中公开了一组精心选择的数据结构和算法.后端是高度优化的,并且是为并行化而设置的. 本系列学习计划有Blue同学作 ...

  6. Open3d学习计划—高级篇 2(彩色点云配准)

    Open3D是一个开源库,支持快速开发和处理3D数据.Open3D在c++和Python中公开了一组精心选择的数据结构和算法.后端是高度优化的,并且是为并行化而设置的. 本系列学习计划有Blue同学作 ...

  7. Open3d学习计划——6(RGBD图像)

    Open3d学习计划--6(RGBD图像) 欢迎大家关注"点云PCL"公众号,进入群聊一起学习. Open3d提供图像(images)数据结构.支持多种函数read_image,w ...

  8. Open3d学习计划——高级篇 6(体素化)

    Open3d学习计划--高级篇 6(体素化) 点云和三角网格是一种十分灵活的,但是不规则的几何类型.体素网格是通过规则的3D网格来表示的另一种3D几何类型,并且它可以看作是2D像素在3D上的对照物.O ...

  9. Open3d学习计划—高级篇 8(网格变形)

    Open3D是一个开源库,支持快速开发和处理3D数据.Open3D在c++和Python中公开了一组精心选择的数据结构和算法.后端是高度优化的,并且是为并行化而设置的. 本系列学习计划有Blue同学作 ...

最新文章

  1. 为什么在反向传播中感知器初始值不能为0_深度学习理论分享之——单层感知器简述...
  2. css3的新特性transform,transition,animation
  3. 计算机网络计算机应用答案,计算机网络与应用(含答案).doc
  4. AQS.acquireQueued
  5. 冲刺一阶段———个人总结04
  6. ImportError: cannot import name ‘joblib‘
  7. 理论基础 —— 排序 —— 逆序对问题
  8. HTTP Error 415: Unsupported Media Type! 这个错误
  9. IOS发送带附件的邮件
  10. oracle 对象类型是什么意思,Oracle-对象类型
  11. 基于JSP的数据库增删改查实现
  12. matlab输出n个a,输入a,n两个参数,要求输出aaa...a(共n个)的值
  13. 浅析markdown和富文本编辑器
  14. 图灵机:计算机世界的理论基石
  15. [Python从零到壹] 五十三.图像增强及运算篇之直方图均衡化处理
  16. 工作效率低如何解决?
  17. 以图搜图 图像匹配_以图搜图是什么 如何实现以图搜图
  18. 2019年六项扣除 个税计算器
  19. 阿尔伯塔计算机科学学费,留学360发布阿尔伯塔大学学费
  20. 妇产科护理学复习重点

热门文章

  1. 要称王,先做行业破坏者
  2. win10设置虚拟内存_硬件基础:虚拟内存相关知识介绍?
  3. Windows 罕见技巧全集1
  4. mysql查询未使用索引,监控MySQL中未使用的索引
  5. 基础知识,DSP芯片介绍
  6. 文件夹文件自动生成目录的方法-保存到txt
  7. mysql DAYOFWEEK 和 WEEKDAY函数
  8. Java发送邮件详解
  9. 如何在 PHP 8.1 中使用枚举
  10. 小觅相机自带的SDK改成自动保存点云、图片、和深度图代码