Python plyfile 与 pymesh

Python plyfile vs pymesh

我需要在 Python 中读取、操作和写入 PLY 文件。 PLY is a format for storing 3D objects. Through a simple search I've found two relevant libraries, PyMesh and plyfile。有没有人对他们中的任何一个有任何经验,有没有人有任何建议?根据 Github 判断,plyfile 现在似乎已经休眠了一年。

我知道这个问题会激发基于意见的答案,但我真的不知道还能在哪里问这个问题。

我在使用点云时已成功使用 plyfile

这个项目确实很久没有出现任何activity,但它达到了它的目的。

并且不像解析 ply 文件那样允许您通过添加新功能来重新创建自己。

另一方面,PyMesh 除了解析 ply 文件之外,还为您提供了许多其他功能。

所以问题可能是:

您只想 'read, manipulate and write PLY files' 还是正在寻找提供更多额外功能的库?

让我选择 plyfile 的原因是我只需复制 1 个源文件就可以将它合并到我的项目中。此外,我对 PyMesh 提供的任何其他功能都不感兴趣。


更新

我不再将自己的函数写入 read/write ply 文件(支持 ascii 和二进制文件),因为我发现 plyfile 源代码有点乱。

如果有人感兴趣,这里是文件的 link: ply reader/writer

我刚刚更新 meshio 以支持 PLY,以及大约 20 种其他格式。使用

安装
pip install meshio

并在命令行中使用其中一个

meshio convert in.ply out.vtk

或来自 Python 内的赞

import meshio

mesh = meshio.read("in.ply")
# mesh.points, mesh.cells, ...

我推出了自己的ascii ply writer(因为它太简单了,我不想依赖)。后来偷懒,依赖plyfile加载其他地方的二进制.ply文件。还没有什么东西着火。

值得一提的是,无论好坏,.ply 格式都是可扩展的。我们将自定义数据硬塞进其中,这很容易,因为我们还编写了自己的编写器。

截至(2020 年 1 月)。

None,使用open3d。这是最简单的,直接将 .ply 文件读入 numpy。

import numpy as np
import open3d as o3d

# Read .ply file
input_file = "input.ply"
pcd = o3d.io.read_point_cloud(input_file) # Read the point cloud

# Visualize the point cloud within open3d
o3d.visualization.draw_geometries([pcd]) 

# Convert open3d format to numpy array
# Here, you have the point cloud in numpy format. 
point_cloud_in_numpy = np.asarray(pcd.points) 

参考文献: