Open3D读取文件

这篇具有很好参考价值的文章主要介绍了Open3D读取文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Open3D可以读取点云文件,三角网格文件,也可以读取图片。具体方法如下:

一、点云文件操作

        Open3D支持的文件格式有xyz,xyzn,xyzrgb,pts,ply,pcd等文件。读取的方式也非常简单。data = o3d.io.read_point_cloud("文件名“)

1、读写文件

        函数原型如下:

        open3d.io.read_point_cloud(filenameformat='auto'remove_nan_points=Falseremove_infinite_points=Falseprint_progress=False)

参数解释:

  • filename (str) – 文件路径.

  • format (stroptionaldefault='auto') – 文件格式,如果没有特殊的说明或设置为auto,文件的格式来自文件的扩展名.

  • remove_nan_points (booloptionaldefault=False) – 如果为true,则在点云数据中移除NaN的点。

  • remove_infinite_points (booloptionaldefault=False) – 如果为true,则在点云数据中移除值为无穷的点。

  • print_progress (booloptionaldefault=False) – 如果设置为true,在加载文件时可以看到进度条。

  • 返回值:open3d.geometry.PointCloud

2、保存点云文件

        o3d.io.write_point_cloud("文件名",data),函数原型:open3d.io.write_point_cloud(filenamepointcloudwrite_ascii=Falsecompressed=Falseprint_progress=False)

参数解释:

  • filename (str) – 文件路径.

  • pointcloud (open3d.geometry.PointCloud) – PointCloud对象

  • write_ascii (booloptionaldefault=False) – 如果为true,则输出文件为Asscii格式,否则为二进制格式.

  • compressed (booloptionaldefault=False) – 如果为true,则对文件进行压缩.

  • print_progress (booloptionaldefault=False) – 如果为true,则显示进度条.

  • 返回值:bool

3、举例

pcd = o3d.io.read_point_cloud("bunny.ply")
print(pcd)  # 输出点云个数
o3d.io.write_point_cloud("copy_of_fragment.pcd", pcd)  # 保存点云数据
o3d.visualization.draw_geometries([pcd], width=800, height=600)   # 显示点云

Open3D读取文件

二、读取/保存图片

读取和保存图片的函数很简单,直接上例子。

img = o3d.io.read_image("文件名")
print(img)
o3d.io.write_image("文件", img)
o3d.visualization.draw_geometries([img], window_name="Open3D图像显示",
                                  width=800, height=600,
                                  left=100, top=200,
                                  mesh_show_back_face=False)

三、三角网格文件

        Open3D支持读取的网格文件有:ply(Polygon File Format),STL(StereoLighography),OBJ(Objects Files),OFF(Object file format),GLTF/GLB(GL Transmission Format)。

1、读取文件

        函数原型如下:

open3d.io.read_triangle_mesh(filenameenable_post_processing=Falseprint_progress=False)

参数解释:

  • filename (str) – 文件路径.

  • enable_post_processing (booloptionaldefault=False) –

  • print_progress (booloptionaldefault=False) – 如果为true,则在控制台可以看到进度条。

  • 返回值:open3d.geometry.TriangleMesh

2、保存文件

        函数原型如下:

open3d.io.write_triangle_mesh(filenamemeshwrite_ascii=Falsecompressed=Falsewrite_vertex_normals=Truewrite_vertex_colors=Truewrite_triangle_uvs=Trueprint_progress=False)

参数解释:

  • filename (str) – 文件路径.

  • mesh (open3d.geometry.TriangleMesh) – TriangleMesh对象

  • write_ascii (booloptionaldefault=False) – 如果为true,则用Ascii格式保存,否则用二进制保存文件。

  • compressed (booloptionaldefault=False) – 如果为true,则对文件进行压缩.

  • write_vertex_normals (booloptionaldefault=True) – 如果为false,则不存储顶点的法线信息.

  • write_vertex_colors (booloptionaldefault=True) – 如果为false,则不存储顶点的颜色信息.

  • write_triangle_uvs (booloptionaldefault=True) – 如果为false,则不存储任何三角形UV信息。对于OBJ格式文件,只有在设置为true时才保存mtl文件。

  • print_progress (booloptionaldefault=False) – 如果设置为true,则在控制台显示进度条。

  • 返回值:bool

3、举例

knot_data = o3d.data.KnotMesh()
print(f"Reading mesh from file: knot.ply stored at {knot_data.path}")
mesh = o3d.io.read_triangle_mesh(knot_data.path, print_progress=True)
print(mesh)  # 此处会打印文件的顶点个数和三角形的个数
print("Saving mesh to file: copy_of_knot.ply")
o3d.io.write_triangle_mesh("copy_of_knot.ply", mesh)
o3d.visualization.draw_geometries([mesh], window_name="Open3D三角网格",
                                  width=800, height=600,
                                  left=100, top=200,
                                  mesh_show_back_face=False)

Open3D读取文件

 四:总结

        本结主要介绍了Open3D操作常见点云和三角网格文件的函数及其用法。Open3D还支持其他格式的文件,待下一节与大家分享。

        文章来源地址https://www.toymoban.com/news/detail-479332.html

到了这里,关于Open3D读取文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 第二章 python-pcl、open3d读取、显示pcd、bin等格式点云数据

    第二章 python-pcl、open3d读取、显示pcd、bin等格式点云数据

    点云数据实际上就是许多组点的集合,每个点由{x,y,z}组成。当然理论上的只包含有3D坐标。 实际激光雷达获取的点云数据还会包含强度、反射率等等。但我们一般只用提取{x,y,z}来处理即可。 点云数据相比于其他传感器数据的核心优势就是在于 精准的深度信息。可惜获取具体

    2024年01月16日
    浏览(12)
  • Open3D 文件读取与保存(Python版本)

    Open3D 文件读取与保存(Python版本)

    Open3D支持许多点云格式数据的读取与保存,如下图所示: PointCloudIO.py

    2024年02月11日
    浏览(15)
  • Open3D——批量将KITTI数据集的.bin文件转换成.pcd点云格式

    Open3D——批量将KITTI数据集的.bin文件转换成.pcd点云格式 随着自动驾驶、智能制造等应用的逐渐推广,在处理三维点云数据方面的需求越来越大。而KITTI数据集是一个包含激光雷达、相机、GPS等多种传感器数据的三维视觉数据集,广泛用于计算机视觉领域的研究。 然而KITTI数据

    2024年01月16日
    浏览(10)
  • 基于Open3D的点云处理17-Open3d的C++版本

    基于Open3D的点云处理17-Open3d的C++版本

    http://www.open3d.org/docs/latest/cpp_api.html http://www.open3d.org/docs/latest/getting_started.html#c http://www.open3d.org/docs/release/cpp_project.html#cplusplus-example-project https://github.com/isl-org/open3d-cmake-find-package https://github.com/isl-org/open3d-cmake-external-project https://github.com/isl-org/Open3D/releases Note: -DBUILD_SHARED_LIBS

    2024年02月09日
    浏览(28)
  • Open3D点云处理

    Open3D点云处理

    Open3D is an open-source library that supports rapid development of software that deals with 3D data. The Open3D frontend exposes a set of carefully selected data structures and algorithms in both C++ and Python. The backend is highly optimized and is set up for parallelization. Open3D是一个支持3D数据处理软件快速开发的开源库,在前端提供

    2023年04月17日
    浏览(13)
  • open3d点云平移

    open3d点云平移

    功能简介 open3d中点云的平移函数为:pcd.translate((tx, ty, tz), relative=True)。当relative为True时,(tx, ty, tz)表示点云平移的相对尺度,也就是平移了多少距离。当relative为False时,(tx, ty, tz)表示点云中心(质心)平移到的指定位置。质心可以坐标可以通过pcd.get_center()得到。 代码

    2024年01月22日
    浏览(19)
  • Open3d点云对象详解

    Open3d点云对象详解

    PointCloud 是open3d中用于点云处理的类,封装了包括几何变换、数据滤波、聚类分割等一系列实用算法。如无特别说明,本例中所有例程均基于斯坦福兔子的点云模型,下载地址:斯坦福标准模型 读取和清除点云 一般点云数据的读取方法属于 open3d.io 的内容,但点云类也提供了

    2023年04月19日
    浏览(34)
  • Open3D点云数据处理(一):VSCode配置python,并安装open3d教程

    Open3D点云数据处理(一):VSCode配置python,并安装open3d教程

    专栏地址:https://blog.csdn.net/weixin_46098577/category_11392993.html 在很久很久以前,我写过这么一篇博客,讲的是open3d点云处理的基本方法。👇 当时是 PyCharm + Anaconda + python3.8 + open3d 0.13 已经是2023年了,现在有了全新版本。目前python由当年的3.8更新到了3.11版本,open3d也从0.13来到了

    2024年02月07日
    浏览(19)
  • 点云可视化 open3D

    点云可视化 open3D

    禁止转载 Python点云数据处理(六)Open3d补充:点云基本处理 - 知乎 https://zhuanlan.zhihu.com/p/353971365?utm_id=0 open3d绘制点云1–单帧点云 - 知乎 https://zhuanlan.zhihu.com/p/591249741 (168条消息) open3D 的使用,pcd可视化,3D bbox可视化,web_visualizer使用等。_CV矿工的博客-CSDN博客 https://blog.csdn.ne

    2024年02月09日
    浏览(20)
  • open3d-点云读写和显示

    open3d-点云读写和显示

    目录 一,点云读取 二,点云写入 二,点云显示 三、 open3d支持如下点云文件类型 ​四、代码及结果示例 参数: filename (str): 点云文件路径 format (str, optional, default=\\\'auto\\\'): 输入文件格式filehe的路径。 如果未指定或设置为“auto”,则从文件扩展名推断格式  remove_nan_points (bool,

    2024年02月04日
    浏览(15)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包