【问题标题】:CGAL-bindings: Surface_Mesher weird Triangulations?CGAL 绑定:Surface_Mesher 奇怪的三角剖分?
【发布时间】:2014-01-23 17:17:36
【问题描述】:

我试图在我的 Aorta.inr 分段图像上复制灰度图像的 cgal 示例,它基本上是:

  1 if the point its inside the Aorta.

  0 if the point its at the outside.

但是三角测量给了我这种奇怪的形式,它与输入图像不相似。

等值=1 的主动脉 .inr 文件。和三角测量结果:

这很奇怪,因为我能够使用给定的等值复制示例。

来自 Cgal 的示例 .inr 文件和右侧的 3d 网格(带有示例参数。来自https://github.com/gx/CGAL/blob/master/examples/Surface_mesher/mesh_a_3d_gray_image.cpp):

有人对可能发生的事情有所了解吗?会很有帮助的:)

解决方案:

问题是 INR 文件,其中的数据需要在写入之前进行转置。现在一切正常,我的方法“writeINR”和“readINR”运行良好!

谢谢!

【问题讨论】:

  • 您是否注意正确选择边界球的平方半径和示例标准?
  • 自发布以来,您的问题有解决方案吗?
  • 是的,问题出在我的“writeINR”和“readINR”方法中。看来我需要在将数据写入文件之前对其进行转置,现在一切正常。我用解决方案编辑了我的问题。
  • 我正在尝试做与您类似的事情,无论该点在内部还是外部,都创建一个带有 1 和 0 的 .inr 图像。然而,似乎几乎没有关于如何做到这一点的文档。您是否碰巧找到了此类文档,或者您有 .inr 文件的示例?
  • 我没有找到任何文档,我自己在 python 中编写了一个代码来创建一个 INR 文件。我想我通过查看示例 inr 文件发现了如何做到这一点。如果您有兴趣:github.com/cncastillo/BioMedUC/blob/master/INRfiles.py

标签: python image-processing computational-geometry cgal


【解决方案1】:

您需要注意两件事:表面的定义和边界球体的定义。

  • 至于表面,我们的代码使用类模板CGAL::Gray_level_image_3CGAL::Implicit_surface_3(链接指向文档页面)。 CGAL::Gray_level_image_3 的文档说该类实现的功能是:sign(f(p)-iso)。如果您的图像的所有像素的值为01,并且等值是1,那么f(p)-iso-10,它的符号绝不是+1。这就是为什么我建议你使用0.5 作为等值,而不是1
  • 至于边界球体,验证球体的中心和它的平方半径是否被选中,这样图像的所有立方体都在球体内。否则,您的对象将被球体剪裁。

我不太了解您使用 Aorta 表面得到的结果,但我很确定您会发现表面的定义或边界球体是错误的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-06
    • 2016-09-16
    • 2015-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多