【发布时间】:2015-06-02 02:02:21
【问题描述】:
关于Marching Cubes,我对它的算法和实现有一些疑问。我浏览了 Marching Cubes 的 Paul Bourke 的优秀文章以及网站上可用的源代码,但是在理解以及如何以我自己的方式实现算法方面,我仍然遇到了一些问题。问题如下:
Gridcell 大小 - 我已阅读到 gridcell 大小会影响生成的 3D 模型的质量。例如,如果我有一堆大小为 (200*200*200) 的 x 射线图像,那么,将由 2 个相邻的图像切片构造一块网格单元。因此,平板中的网格单元总数将为 (200-1)*(200-1),其中每个网格单元角对应于图像的像素值/密度。它是否正确??另外,gridcell如何实现不同大小的?
体素大小 - 我已经阅读了 Marching Cubes 的一些参考资料,但我似乎无法找到算法中如何处理体素大小。如果我错了,请纠正我,在我的情况下,相邻图像层之间的间隙大小为 1 百万;因此,我该如何照顾 Marching Cubes 算法中的那些人,还是死路一条?它是否像 Gridcell 的大小一样被照顾? (假设:xy坐标上一个像素的大小为19微米,而gap/z为25.4微米/1 mil长)
网格单元角的坐标(立方体的顶点坐标) - 我正在尝试通过图像集尺寸 (200*200*200) 的嵌套循环来分配具有索引 i j k 的网格单元角的坐标。它是否正确??有没有更快的方法?
注意:我在 VTK 中看到了 MC 的实现,但我很难理解它,因为它依赖于其他一些 VTK 类。
【问题讨论】:
标签: c++ algorithm 3d marching-cubes