• 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)   # 显示点云
    

    二、读取/保存图片

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

    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还支持其他格式的文件,待下一节与大家分享。

            

  • 相关阅读:
    力扣刷题学习SQL篇——1-7 查询(修复表中的名字——利用字符串函数)
    WinForms C# 导入和导出 CSV 文件 Spread.NET
    【PyCharm Community Edition】:基础
    卷积神经网络 - LeNet
    yolov3学习笔记
    FastDFS 存储原理
    安卓实现简单砸地鼠游戏
    Android样式和主题背景
    绘制三角波与梯形波
    让PPT更好看的方法,需要的朋友快来吧
  • 原文地址:https://blog.csdn.net/DAVID850911/article/details/127851523