使用matlab打开.ply网格文件(或在python中转换为可读格式)

2024-05-13 01:09:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用MPI FAUST数据集-包含.ply网格文件。
.ply标头如下所示:

ply
format binary_little_endian 1.0
element vertex 6890
property float x
property float y
property float z
element face 13776
property list uchar int vertex_indices
end_header

我可以使用pymesh库加载它们:

a =  pymesh.load_mesh("tr_scan_019.ply")
a.vertices
array([[ 0.00294954,  0.3746013 , -0.18593594],
       [-0.01065227,  0.30154902,  0.03721469],
       [ 0.01176361,  0.37961864, -0.18658873],
       ...,
       [ 0.39272201,  1.0824883 ,  0.0319973 ],
       [-0.29185328,  1.00391781,  0.03810745],
       [ 0.39623857,  1.08823442,  0.03612268]])
>>> a.faces
array([[ 49533,  45416,  52207],
       [141371,  38353,  56906],
       [ 57747,  59888,  43636],
       ...,
       [132845, 180118, 175435],
       [166162, 173001, 166963],
       [177654, 173001, 166162]], dtype=int32)

我需要加载到一个可读的matlab网格格式,因为我有网格处理功能,我写在matlab。你知道吗

我试着用matlab函数来加载它们,但都是2015年的,而且都不起作用(例如gptoolbox只读取顶点)。
有没有一种方法可以将网格写入可读的matlab格式,以便我以后可以在matlab中正确地读取它?你知道吗


Tags: 文件数据网格格式propertyelementfloatarray
1条回答
网友
1楼 · 发布于 2024-05-13 01:09:21

您可以使用meshio(我的一个项目)将ply文件转换为一系列其他格式,也许其中一种格式在MATLAB中是本机可读的。只是

pip3 install meshio  user

然后呢

meshio-convert in.ply out.vtk

在命令行上。你知道吗

如果这不起作用,您可以将数据从Python中转储到csv之类的简单文件中

import meshio

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

相关问题 更多 >