Open3d读写ply点云文件

1 Open3d 安装

        Open3d是由Intel发布的一个开源库,支持快速开发和处理3D数据。Open3D在c++和Python中公开了一组精心选择的数据结构和算法。后端是高度优化的,并且是为并行化而设置的。

      Open3d直接使用pip安装即可。解决下载慢的问题,请切换下载源。设置方式请参考:python pip_Coding的叶子的博客-CSDN博客。

pip install open3d

        ply点云格式介绍请参考:点云格式介绍(二)_Coding的叶子的博客-CSDN博客。

        对于ply点云文件,Open3d读取到的点云通常存储到TriangleMesh类中,如下图所示。下图中vertices存储了全部的点云坐标,可以用numpy.array转换成矩阵形式。

Open3d读写ply点云文件_第1张图片

 2 numpy转TriangleMesh

        对于点云矩阵,通常要转换为TriangleMesh格式才能被Open3d处理,包括存储和点云处理等。

import open3d as o3d
ply = o3d.geometry.TriangleMesh()
ply.vertices = o3d.utility.Vector3dVector(points_array)

3 读ply点云文件

        Open3d读取ply格式点云文件的函数为o3d.io.read_triangle_mesh,读取的点云存储为上图所示的TriangleMesh类。

import open3d as o3d
import numpy as np
ply = o3d.io.read_triangle_mesh(path)
points = np.array(ply.vertices) #转为矩阵

4 写ply点云文件

        保存点云文件的函数为o3d.io.write_triangle_mesh。

o3d.io.write_triangle_mesh(path, ply)

        注意事项:这样保存的文件可以被open3d直接读取,但是用其他方式读取时可能会出现如下所示的编码错误,因此最好指定保存的编码方式。

o3d.io.write_triangle_mesh (path, ply, write_ascii=True)

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfe in position 203: invalid continuation byte。

python三维点云研究计划_Coding的叶子的博客-CSDN博客_3d点云 python将按照以下目录持续进行更新……点云格式介绍、点云可视化、点云投影、生成鸟瞰图、生成前视图、点云配准、点云分割、三维目标检测、点云重建、深度学习点云算法……https://blog.csdn.net/suiyingy/article/details/124017716

点云格式介绍(二)_Coding的叶子的博客-CSDN博客常见点云存储方式有pcd、ply、txt、bin文件。本节主要介绍ply点云格式。https://blog.csdn.net/suiyingy/article/details/124214755

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

你可能感兴趣的:(三维点云,数据集,python,open3d,ply,点云,python)