【问题标题】:How to obtain bounding box info in pymeshlab?如何在 pymeshlab 中获取边界框信息?
【发布时间】:2021-04-22 08:01:09
【问题描述】:

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

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

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

【问题讨论】:

  • 想通了——对于任何想知道的人来说,它看起来像这样:boundingbox = ms.current_mesh().bounding_box() diag = boundingbox.diagonal()
  • 嗨菲尔,欢迎来到 SO。由于您自己找到了答案,您可以将您的代码作为答案而不是评论发布吗?这将帮助其他人找到您的解决方案,因为不会将此问题视为未回答。

标签: meshlab pymeshlab


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    我将扩展 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)
    

    【讨论】:

      猜你喜欢
      • 2018-08-23
      • 2019-11-06
      • 1970-01-01
      • 2019-05-11
      • 1970-01-01
      • 2021-04-04
      • 2020-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多