使用meshlabserver批量处理三维模型(附代码)

http://blog.csdn.net/sxf1061926959
欢迎访问我的博客

Meshlab的.mlx脚本,可以保存对原数据的操作,然后通过meshlabserver进行批量处理。
本人最近要对三维模型进行批量降采样,如果只是一个三维模型的话,我们可以使用meshlab图形界面中的filters进行操作。但是如果想要批量处理大量的三维模型,用图形界面去操作就太慢了。那么我们就得用到meshlabserver了。这个是meshlab的一个小工具。安装meshlab的时候已经一起安装好了。它和meshlab.exe在同一个文件夹下。
使用meshlabserver批量处理三维模型(附代码)_第1张图片
怎么用呢?
Meshlab是可以创建.mlx文件形式的XML脚本的,这些XML过滤器脚本能通过Meshlab图形界面或者使用meshlabserver使用命令行来执行。

1、怎么创建Meshlab MLX 过滤器脚本

将你的模型用meshlab打开,
使用meshlabserver批量处理三维模型(附代码)_第2张图片
然后菜单栏有个Filters,你会发现下面有好多操作。
使用meshlabserver批量处理三维模型(附代码)_第3张图片
如果你现在的模型是有处理脚本的,那么点击show current filter script是会显示出来的,没有的话,那就是空的。
下面我举个简单的栗子

减面操作(我做的就是这个的批处理)

使用meshlabserver批量处理三维模型(附代码)_第4张图片

如上图所示,在Filters下找到Remeshing,Simplification and Reconstruction选项,再进一步找到它下面的Quadric Edge Collapse Decimation。然后会出来一个下图所示框框。
使用meshlabserver批量处理三维模型(附代码)_第5张图片
里面有好多参数,想怎么改怎么改,改完点Apply确认一下,Meshlab就自动帮你处理了。
下面是我处理的前后两张图,把面降到了2500.
使用meshlabserver批量处理三维模型(附代码)_第6张图片

保存MLX脚本

如果你这些参数是要记住的或者进一步用来批处理,那么就要保存啦。
点击FIlters菜单,选择Show current filter script。打开后会显示刚才的脚本。
使用meshlabserver批量处理三维模型(附代码)_第7张图片
直接点击save Script就OK了。
使用meshlabserver批量处理三维模型(附代码)_第8张图片
上图这个界面同样可以加载外部写好的脚本,点击那个Open Script,然后再点Apply Script就可以了处理模型了。

批处理脚本

保存好的脚本是.mlx文件,里面是XML形式的内容,记录了处理了哪些操作。
使用meshlabserver批量处理三维模型(附代码)_第9张图片
进行批处理就要使用meshlabserver了。其实使用meshlabserver很简单,直接在命令行下就能用,那就直接可以用批命令处理了。
如图是linux下写的shell进行批处理的代码:
使用meshlabserver批量处理三维模型(附代码)_第10张图片
我从网上搜集并修改了两份代码,一份是windows下的,一份是linux下的。都是批处理文件,直接用记事本打开就根据自己的要求修改参数,针对不同的处理问题只要调用不同的.mlx文件即可。代码可以到我的github上下载,里面有详细的说明。
github下载地址链接
https://github.com/Shicoder/Meshlab-MLXScriptBatchProcessing

参考资料:

http://blog.csdn.net/linear_luo/article/details/52396439
http://www.andrewhazelden.com/blog/2012/04/automate-your-meshlab-workflow-with-mlx-filter-scripts/
https://github.com/tum-vision/csd_lmnn/

你可能感兴趣的:(三维,三维,meshlab批处理,三维模型降采样,三维模型批量处理,mlx文件解读)