表面重建¶
1 Marching Cubes¶
把三维标量场(体数据)变成三角网格等值面的经典算法。
👉 CT / MRI / 体素数据 → 表面模型(mesh)
通过将体数据划分为小立方体,针对每个立方体的八个顶点的标量值进行判断,再根据预设的查表规则生成三角形,最终形成一个网格表面。
vtkNew<vtkMarchingCubes> marchingCubes;
marchingCubes->SetInputData(imageData);
marchingCubes->SetValue(0, 500);
marchingCubes->Update();
2 Flying Edges¶
Flying Edges 是基于飞行边缘算法的表面重建方法,是 Marching Cubes 的一种优化版,提高对大规模体数据的处理效率。
与传统的 Marching Cubes 算法不同,Flying Edges 通过“飞行”判断每个立方体的边缘,而不是每个角点。
-
Marching Cubes 会检查每个小立方体的 8 个角点,看它们的标量值与等值面(iso-surface)比较的结果,以此决定是否生成三角形。
-
Flying Edges 不需要每次都检查所有 8 个角点,只判断这条边的两个端点是否处于等值面两侧(一个小于等值面,一个大于等值面)。如果是这样,这条边就会与等值面相交。