CGAL绑定:Surface_Mesher奇怪的三角测量?

时间:2014-01-23 17:17:36

标签: python image-processing computational-geometry cgal

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

  1 if the point its inside the Aorta.

  0 if the point its at the outside.

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

aorta .inr文件,isovalue = 1。和三角测量结果:

它很奇怪,因为我能够用给出的isovalue复制这个例子。

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

有人对可能发生的事情有所了解?这将是非常有用的请:)

SOLUTION:

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

谢谢!

1 个答案:

答案 0 :(得分:0)

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

  • 至于表面,我们的代码使用类模板CGAL::Gray_level_image_3CGAL::Implicit_surface_3(链接指向文档页面)。 CGAL::Gray_level_image_3的文档说该类实现的函数是:sign(f(p)-iso)。如果您的图片包含值为01的所有像素,且isovalue为1,则f(p)-iso-10,并且永远不会+1。这就是为什么我建议您使用0.5作为isovalue而不是1
  • 对于边界球,请确认选择球体的中心及其平方半径,以便图像的所有立方体都在球体内。否则,您的对象将被球体剪切。

我真的不明白你的主动脉表面的结果,但我很确定你会发现表面的定义或边界球是错误的。