如何在pymeshlab中获取边界框信息?

问题描述

我刚开始使用 pymeshlab,我真的很喜欢它。但是,我在做一件事时遇到了麻烦。我正在尝试使用 vertex_attribute_transfer 过滤器,但宁愿使用世界单位而不是上限参数的百分比。我想我可以根据我想要的世界单位除以边界框的对角线长度 x100 来计算参数的正确百分比,但我无法弄清楚如何获取 MeshSet 中网格的边界框信息。

我看到 compute_geometric_measures 工具应该根据文档提供边界框信息,但结果是包含与网格相关的其他信息的字典(例如平均边长、面积等 - 这是仍然有用的信息)。我也看到有一个完整的边界框类,但我不知道如何使用它来获取 MeshSet 中特定网格的边界框信息。

有人可以提供一个示例来获取 pymeshlab 中网格的边界框信息吗?

解决方法

弄清楚如何获取边界框信息。对于任何想知道的人来说,它看起来像这样:

boundingbox =  ms.current_mesh().bounding_box()
diag = boundingbox.diagonal()
,

我将扩展 Phil Devine 给出的原始答案,以给出一个完整的可执行示例。 此示例读取网格并调用 diagonal() 方法。

import pymeshlab as ml
ms = ml.MeshSet()
ms.load_new_mesh('input.ply')
m = ms.current_mesh()

#Build the Bounding Box and get its diagonal length
diag = m.bounding_box().diagonal()

print('Diagonal of this model:',diag)