meshlab - PyMeshLab - MLS 投影 APSS - 循环的当前和代理网格 ID
问题描述
我正在尝试通过 pymeshlab 处理一批 STL 文件。我正在使用两个过滤器,即“remeshing_isotropic_explicit_remeshing”和“mls_projection_apss”。过滤器“mls_projection_apss”出现问题,默认情况下,控制和代理网格都使用网格 id = 0,导致算法始终使用 id 为 0 的网格进行所有未来迭代。
请帮助我如何定义网格集中当前网格的 ID 用作控制和代理网格,而不是默认的“0”。
当前代码:
for filename in os.listdir(inputdir):
if filename.endswith(".stl"):
ms.load_new_mesh (os.path.join(inputdir, filename))
print(os.path.join(filename))
ms.current_mesh_id()
print(ms.current_mesh_id())
ms.remeshing_isotropic_explicit_remeshing(targetlen=0.1, checksurfdist=True, maxsurfdist=0.1)
ms.mls_projection_apss(controlmesh=, proxymesh=, filterscale=2)
ms.save_current_mesh(os.path.join(outputdir_2, filename))
解决方案
这对我有用,但我不确定它是否是你想要的。我检测到的一个问题是ms.mls_projection_apss()
似乎将 current_mesh 更改为 0,因此ms.save_current_mesh()
保存原始网格而不是 MLS 过滤器的结果。
import pymeshlab as ml
ms = ml.MeshSet()
for filename in os.listdir(inputdir):
if filename.endswith(".stl"):
ms.load_new_mesh (os.path.join(inputdir, filename))
m = ms.current_mesh()
print(os.path.join(filename), ms.current_mesh_id(), m.vertex_number(), 'vertex', m.face_number(), 'faces' )
ms.remeshing_isotropic_explicit_remeshing(targetlen=0.1, checksurfdist=True, maxsurfdist=0.1)
#Get the id of the last mesh in the set
last_id = ms.number_meshes()-1
ms.mls_projection_apss(controlmesh=last_id, proxymesh=last_id, filterscale=2)
#Ensure we select last mesh before saving result
ms.set_current_mesh(ms.number_meshes()-1)
m = ms.current_mesh()
print("Saving", os.path.join(outputdir_2, filename), m.vertex_number(), 'vertex', m.face_number(), 'faces' )
ms.save_current_mesh(os.path.join(outputdir_2, filename))
推荐阅读
- java - 分解代码,其中唯一的区别是流缩减操作
- schema - 我正在尝试使用 Apache Beam 的 SchemaCreate 注释。未推断架构
- c++ - 如何通过另一个项目在 QT C++ 中运行一个项目?
- javascript - header 元素阻止执行 Javascript
- javascript - 无法让 antd 与 create-react-app 一起使用
- python - 如何使用 kivy 在第二个屏幕中制作列表
- erlang - 守卫中的语法错误导致未定义的函数
- html - 占据多行和/或多列的 Css flex 项
- c++ - Listview C++ win32 API - 示例不工作
- html - Bootstrap 列在 IE 和边缘中工作(列并排显示),但在 chrome 中不起作用(列垂直堆叠)