将meshlab函数与python结合使用



我是3D的新手,我有一个点云,我想使用python库形成一个网格。但我可以使用meshlab函数,即"Filters-->Pointset-->计算点集的法线"one_answers"Filters-->Remeshing,Simplifications and Reconstruction-->Surface Reconstruction::Poission">

有没有任何方法可以通过使用python来实现上述meshlab功能,使其自动化。

感谢

您可以对Meshlab附带的meshlabserver进行系统调用(它位于Meshlab安装目录中)。

如果在没有参数的情况下运行meshlabserver.exe,它将显示以下手册页

用法:meshlabserver[logargs][args]

其中logargs可以是:

-d filename             dump on a text file a list of all the
filtering functions
-l filename             log of the filters is ouput on a file

其中args可以是:

-p filename             meshlab project (.mlp) to be loaded
-w filename [-v]        output meshlab project (.mlp) to be saved.
If -v flag is specified a 3D model meshfile.ext
contained in the input project will be overwritten,
otherwise it will be saved in the same directory of
input mesh as a new file called meshfile_out.ext.
All the mesh attributes will be exported in the
saved files
-i filename             mesh that has to be loaded
-o filename [-m <opt>]  the name of the file where to write the current mesh
of the MeshLab document.
If -m is specified  the specified mesh attributes will
be saved in the output file. the param <opt> can be a
space separated list of the following attributes:
vc -> vertex colors,  vf -> vertex flags,
vq -> vertex quality, vn-> vertex normals,
vt -> vertex texture coords,
fc -> face colors,  ff -> face flags,
fq -> face quality, fn-> face normals,
wc -> wedge colors, wn-> wedge normals,
wt -> wedge texture coords
-s filename                 the script to be applied

示例:

'meshlabserver -i input.obj -o output.ply -m vc fq wn -s meshclean.mlx'
the script contained in file 'meshclean.mlx' will be applied to the
mesh contained into 'input.obj'. The vertex coordinates and the
per-vertex-color, the per-face-quality and the per-wedge-normal
attributes will be saved into the output.ply file
'meshlabserver -i input0.obj -i input1.ply -o outproj.mlp -v -s meshclean.mlx'
the script file meshclean.mlx will be applied to the document
composed by input0.obj and input1.ply meshes.
The mesh input1.ply will become the current mesh of the document
(e.g. the mesh to which the filters operating on a single model will
be applied). A new output project outproj.mlp file will be generated
(containing references to the input0.obj an input1.ply).
The files input0.obj and input1.ply will be overwritten.
'meshlabserver -l logfile.txt -p proj.mlp -i input.obj -w outproj.mlp -s meshclean.mlx'
the mesh file input.obj will be added to the meshes referred by the
loaded meshlab project file proj.mlp. The mesh input.obj will become
the current mesh of the document, the script file meshclean.mlx will
be applied to the meshes contained into the resulting document.
the project file outproj.mlp will be generated
A 3D model meshfile.ext contained in the input project proj.mlp will
be saved in a new file called meshfile_out.ext
(if you want to overwrite the original files use the -v flag after
the outproject filename) all the attributes of the meshes will be
saved into the output files; the log info will be saved into the
file logfile.txt.

注意事项:可以加载多个网格并按其列出的顺序很重要,因为使用网格作为参数的过滤器根据顺序输出网格的格式由所使用的扩展猜测。脚本是可选的,必须是由MeshLab保存的xml格式。

首先,使用Meshlab加载网格,运行要运行的筛选器,然后转到filters >> show current filter script并将脚本保存在某个位置,以便使用meshlabserver调用它。

一个专业提示:如果你正在加载.stl文件,你必须添加以下内容作为第一个过滤器:

<filter name="Merge Close Vertices">
<Param type="RichAbsPerc" name="Threshold" description="Merging distance" value="0" tooltip="All the vertices that closer than this threshold are merged together. Use very small values, default values is 1/10000 of bounding box diagonal. " min="0" max="0"/>
</filter>

相关内容

  • 没有找到相关文章

最新更新