我试图在我的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”工作正常!。
谢谢!
答案 0 :(得分:0)
你需要注意两件事:表面的定义和边界球的定义。
CGAL::Gray_level_image_3
和CGAL::Implicit_surface_3
(链接指向文档页面)。 CGAL::Gray_level_image_3
的文档说该类实现的函数是:sign(f(p)-iso)
。如果您的图片包含值为0
或1
的所有像素,且isovalue为1,则f(p)-iso
为-1
或0
,并且永远不会+1
。这就是为什么我建议您使用0.5
作为isovalue而不是1
。我真的不明白你的主动脉表面的结果,但我很确定你会发现表面的定义或边界球是错误的。