一、关于环境
pymeshlab存在多种版本,本文所述的方法指定为2021.10,其官方参考文档为:PyMeshLab — PyMeshLab documentation
在安装pymeshlab前,需要在系统中安装好meshlab,以便pymeshlab实现通讯。(ps.最新的meshlab可能不完全支持)
二、关于代码
本文所给出代码仅为参考,禁止转载和引用,仅供个人学习。模版压缩包是来自lmo数据集:https://download.youkuaiyun.com/download/weixin_42605076/89233917(审核需要2-10天)。
# pymeshlab需要导入,其一般被命名为ml
import pymeshlab as ml
# glob是一个常用的用于遍历文件的库
import glob
# tqdm主要用于循环执行中的测速
from tqdm import tqdm
# 该条需要被更改为个人的文件夹路径,其中需要注意使用'/'来分割各级文件夹。额外的,ply格式可以被修改为自定义的且被meshlab支持的格式
dir_path = 'C:/xxx/xxx/xxx/xxx/*.ply'
for filepath in tqdm(glob.iglob(dir_path)):
# 首先需要创建一个空的容器
mesh = ml.MeshSet()
# 然后,加载一个物体模型
mesh.load_new_mesh(filepath)
# axis x、y、z表示分别对x、y、z进行缩放,即将原始模型的坐标缩小1000倍。
mesh.transform_scale_normalize(axisx = 0.001, axisy = 0.001, axisz = 0.001)
# 最后,保存模型。replace函数可以帮助我们将ply后缀变为obj后缀。值得注意的是,请不要在文件夹中使用常见的3D模型格式,replace同样会将包含这些字符的部分变为obj。此外,你也可以将obj换成stl等常见的3D模型格式。
mesh.save_current_mesh(filepath.replace('ply', 'obj'))