使用meshlabserver批量處理三維模型(附代碼)

http://blog.csdn.net/sxf1061926959
歡迎訪問我的博客

Meshlab的.mlx腳本,可以保存對原數據的操作,然後通過meshlabserver進行批量處理。
本人最近要對三維模型進行批量降採樣,如果只是一個三維模型的話,我們可以使用meshlab圖形界面中的filters進行操作。但是如果想要批量處理大量的三維模型,用圖形界面去操作就太慢了。那麼我們就得用到meshlabserver了。這個是meshlab的一個小工具。安裝meshlab的時候已經一起安裝好了。它和meshlab.exe在同一個文件夾下。
這裏寫圖片描述
怎麼用呢?
Meshlab是可以創建.mlx文件形式的XML腳本的,這些XML過濾器腳本能通過Meshlab圖形界面或者使用meshlabserver使用命令行來執行。

1、怎麼創建Meshlab MLX 過濾器腳本

將你的模型用meshlab打開,
這裏寫圖片描述
然後菜單欄有個Filters,你會發現下面有好多操作。
這裏寫圖片描述
如果你現在的模型是有處理腳本的,那麼點擊show current filter script是會顯示出來的,沒有的話,那就是空的。
下面我舉個簡單的栗子

減面操作(我做的就是這個的批處理)

這裏寫圖片描述

如上圖所示,在Filters下找到Remeshing,Simplification and Reconstruction選項,再進一步找到它下面的Quadric Edge Collapse Decimation。然後會出來一個下圖所示框框。
這裏寫圖片描述
裏面有好多參數,想怎麼改怎麼改,改完點Apply確認一下,Meshlab就自動幫你處理了。
下面是我處理的前後兩張圖,把面降到了2500.
這裏寫圖片描述

保存MLX腳本

如果你這些參數是要記住的或者進一步用來批處理,那麼就要保存啦。
點擊FIlters菜單,選擇Show current filter script。打開後會顯示剛纔的腳本。
這裏寫圖片描述
直接點擊save Script就OK了。
這裏寫圖片描述
上圖這個界面同樣可以加載外部寫好的腳本,點擊那個Open Script,然後再點Apply Script就可以了處理模型了。

批處理腳本

保存好的腳本是.mlx文件,裏面是XML形式的內容,記錄了處理了哪些操作。
這裏寫圖片描述
進行批處理就要使用meshlabserver了。其實使用meshlabserver很簡單,直接在命令行下就能用,那就直接可以用批命令處理了。
如圖是linux下寫的shell進行批處理的代碼:
這裏寫圖片描述
我從網上搜集並修改了兩份代碼,一份是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/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章