MeshLab .ply文件导入错误

5

我是一位新手,正在学习3D重建技术。我有一个点云文件,并将其保存在.ply格式中。但是当我试图打开这个文件时,Meshlab软件提示了错误信息。

请查看以下错误信息,并帮助我解决问题,让Meshlab能够正确打开该文件。

 Unespected eof

请找到我的bunney(copy).ply文件。
ply
format ascii 1.0
comment Mars model by Paul Bourke
element vertex 259200
property float x
property float y
property float z
element face 516960
property list uchar int vertex_indices
end_header
15081.5 -3.45644e+06 65.8061
15081 -3.45659e+06 197.422
15078.2 -3.45648e+06 329.009
15075.4 -3.45663e+06 460.597
15071.2 -3.4567e+06 592.148
15065.6 -3.45674e+06 723.653
15059.9 -3.457e+06 855.16
15050.7 -3.45674e+06 986.473
14541.2 3.33642e+06 -698.464
14547.7 3.33663e+06 -571.58
14551.5 3.33649e+06 -444.589
14552.7 3.336e+06 -317.541
14556.9 3.33645e+06 -190.56
14558.7 3.33661e+06 -63.5247
3 0 721 1
3 721 0 720
3 1 722 2
3 722 1 721
3 2 723 3
3 723 2 722

如何消除这个错误,我应该在我的bunny(copy).ply文件中更改什么?请帮助我。

请查看下面的图片 MeshLab错误


遇到了同样的问题。我在这里找到了一个解决方案:http://sourceforge.net/p/meshlab/bugs/238/,但是在我的情况下,“export LANG=C”并没有起作用。 - mojovski
1
我也遇到了这个问题,我做了以下操作:将科学计数法改为十进制,删除注释行以及其他一些不相关的内容,然后就能够加载它了。 - mlh3789
3个回答

8

在我的情况下,数据是正确的,但由于语言环境设置不正确,meshlab并没有正确读取。使用LC_ALL=C meshlab重新启动程序后,PLY文件终于成功加载了。版本为2016.12。


具体而言,这是由于环境变量LC_NUMERIC被设置为使用,作为小数点分隔符的区域设置。您只需要将其更改为使用.的区域设置或设置为C。例如,export LC_NUMERIC='en_US.UTF-8'export LC_NUMERIC=C - stephen
@stephen 我对Locale环境变量不是很熟悉。如果你非常确定,就让我知道,否则我会在有空的时候阅读一下,然后更新答案。谢谢 :) - saurabheights
1
你的回答很好。我只是提供了更多细节,并更具体地说明了问题的原因,因为它在其他程序中也出现了。你可以在你的回答中用LC_NUMERIC替换LC_ALL,这样就可以解决逗号问题。然而,我并没有广泛使用meshlab,所以也许还有其他受到LC_ALL影响的功能,所以我会保留原来的回答。 - stephen
@snwflk 哈哈,没关系。我在德国工作/学习,所以我的系统语言设置为德语,很容易就能理解了。 - saurabheights

2

根据你的ply文件所示:

element vertex 259200

element face 516960

这意味着你的ply文件包含了259200个顶点和516960个面的数据。然而,你的ply文件并没有那么多的数据。因此,MeshLab会显示“未预期的eof”错误。

你需要确认你的ply文件中是否有与你描述的数据一样多的内容。


抱歉,我是一个非常初学者,但是如何确认您的PLY文件具有与我描述的数据一样多? - Bastienm
例如,element vertex 259200 表示您有 259200 个顶点,您只需要确认您的 ply 文件包含了 259200 个顶点的数据即可。 - flyingzhao
我明白你的意思,但是你所说的确认是什么意思?MeshLab 并未要求进行任何确认。它只是说:“错误详情:意外 eof”,而我没有其他选择,只能按“确定”。我应该在 .ply 文件中添加一些内容,还是更改 MeshLab 中的某个选项? - Bastienm
1
MeshLab不会提醒你,你需要自己检查并将其加载到MeshLab中。 - flyingzhao
最后,我只需要将“.”替换为“,”,然后它就可以工作了。 - Bastienm

-3
尝试在文件末尾加入一个空行。 这可能会解决你的问题。

@kipe,但是文件末尾总是有空格。你有什么想法呢? - coderide

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接