【问题标题】:Calculate discrete curvature of sliced mesh in meshlab在meshlab中计算切片网格的离散曲率
【发布时间】:2020-11-05 10:45:05
【问题描述】:

作为我本科研究的一部分,我希望通过图像分析计算气体扩散层 (GDL) 内部水的内部接触角,这是一种主要由碳纤维制成的氢燃料电池的多孔组件。最终,我想对水进行 3D 网格分析并分析其平均曲率,这将允许我计算平均接触角。

为此,我预先分割了相同 GDL (.tiff) 的干湿堆栈的断层扫描图像。我合并了两个分段堆栈以创建一个新的合并堆栈,其中 GDL 为红色,水为蓝色。合并堆栈的一张图片如下所示。

Screenshot of merged stack of segmented GDL and water tomography stacks. Note that the red 'dots' are cross-sections of carbon fibers. The top and bottom red boundaries are plastic covers around the GDL during water injection and are to be ignored.

使用 ImageJ 的 3D Viewer 插件,我创建了合并堆栈的网格,并设置了阈值,以便只显示水(蓝色)。我将其保存为二进制 STL 文件。

Screenshot of 3D mesh of water injected into a GDL, showing water only.

然后,我将该文件上传到 meshlab,经过多次表面保持拉普拉斯平滑迭代后,我使用 [过滤器 > 法线、曲率和方向 > 离散曲率] 工具计算了平均曲率。当我应用 [Render > Show Quality Histogram] 功能时,我注意到平均曲率显示为 0,因为网格的底部完全平坦。

Screenshot of mesh in meshlab with histogram of curvatures to the left.

我想计算平均曲率,但是对于网格的特定部分;即,排除网格的外边缘并排除网格的底部。我该怎么做?

(另外,我对图像分析、网格、计算几何和网格实验室非常陌生。如果有人对找到平均曲率或接触角的更好方法有任何建议,我会全力以赴。)

---更新---

我意识到有一种替代解决方案可以更好地满足我的项目需求。因此,我不会再追求 meshlab 路线了。 (不过,感谢@akio.tanaka 的输入。)

【问题讨论】:

  • 您是否使用特定语言编写此代码?蟒蛇?
  • @mishsx 我还没有决定选择一种语言,但它可能会归结为 Python 或 Matlab。这是我所熟悉的仅有的两种语言。

标签: image-processing computational-geometry mesh meshlab


【解决方案1】:

在计算曲率之前,您应该删除一些在这种情况下不想计算曲率的面。 “条件人脸选择”过滤器可以帮助它。 您可以使用 [Filters] -> [Selection] -> [Conditional Face Selection] 中的过滤器。

下图是选择每个顶点法线的 z 分量大于 0.5 的面的示例。红色的脸是选定的。在这种情况下,您可以按“删除”键删除人脸:

【讨论】:

  • 我明白了,这很有帮助。但是,在尝试之后,恐怕它仍然没有解决我的问题。当我计算整个网格的平均曲率时,模式为 0,或者非常接近它。即使通过您的建议选择了面孔,模式仍然是 0。
  • @ChrisLiu 是否可以上传您正在尝试改善输出的网格文件?
  • 不幸的是,我无法做到这一点。这是专有数据。
猜你喜欢
  • 2020-06-16
  • 1970-01-01
  • 2020-11-15
  • 1970-01-01
  • 2020-03-30
  • 1970-01-01
  • 2018-10-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多