Python plyfile vs pymesh

时间:2016-04-28 16:35:03

标签: python ply-file-format

我需要在Python中阅读,操作和编写PLY文件。 PLY是用于存储3D对象的格式。通过简单的搜索,我找到了两个相关的库,PyMeshplyfile。有没有人对他们中的任何一个有任何经验,有没有人有任何建议?根据Github的判断,plyfile似乎已经休眠了一年。

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

4 个答案:

答案 0 :(得分:5)

截至(2020年1月)。

没有,请使用open3d。这是最简单的方法,可以将.ply文件直接读取到numpy中。

import numpy as np
import open3d as o3d

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

# Visualize the point cloud within open3d
o3d.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) 

参考:

答案 1 :(得分:4)

我在使用pointclouds时成功使用了plyfile

确实,该项目长期没有提供任何活动,但它符合其目的。

并不是解析一个ply文件的事实,它允许你通过添加新功能来重新创建自己。

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

所以问题可能是:

您是否想要阅读,操作和编写PLY文件'或者您正在寻找一个提供更多额外功能的库?

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

更新

我结束编写自己的函数来读/写ply文件(支持ascii和binary)因为我发现plyfile源代码有点乱。

如果有人有兴趣,这里有一个指向该文件的链接: ply reader/writer

答案 2 :(得分:1)

我刚刚更新了meshio,使其也支持PLY,仅次于其他20种格式。使用

安装
pip3 install meshio --user

并在命令行中使用

meshio-convert in.ply out.vtk

或在Python之内,例如

import meshio

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

答案 3 :(得分:0)

我滚动了我自己的ascii层作家(因为它很简单,所以我不想依赖)。后来,我很懒惰,并且依赖plyfile来加载来自其他地方的二进制.ply文件。还没有什么着火的。

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