.
Marching Cubes 算法
Marching Cubes 算法是三维规则数据场等值面生成的经典算法 ,于 1987 年由 Lorensen
和 Cline 两人在 Siggraph Proceedings <pp. 163-169>提出。处理的对象一般是
断层扫描〔CT,或是核磁共振成像〔MRI 等产生的图像。
一、基本概念
在 Marching Cube 算法中,体素是以逻辑上的六面体,由相邻层上的各四个像素组成的立
方体上的八个顶点。
等值面是空间中所有具有某个相同值的点的集合。它可以表示成
这里的 c 是我们在三维重构过程中给定的阈值。
二、算法简介
算法的基本思想是逐个处理数据场中的立方体〔体素,分类出与等值面相交的立方体,采
用插值计算出等值面与立方体边的交点。根据立方体每一顶点与等值面的相对位置,将等值
面与立方体边的交点按一定方式连接生成等值面,作为等值面在该立方体内的一个逼近表示。
之所以这样,是由于 Marching Cubes 有个基本假设:沿六面体边的数据场呈连续性变化。也
就是讲,如果一条边的两个顶点分别大于或小于等值面的值,则在该条边上有且仅有一点是这
条边与等值面的交点。
为了说明一下算法,先从 2D 图像开始。图 1〔a 是一张像素灰度值为 0~3 的图像。给
定阈值 1.5,黑色的点表示像素值大于 1.5 的像素。图 1〔b〔c 描述了等值线的抽取过程。
图 1〔a 图 1〔b:用空心小圈表示 图 1〔c:进行线性插值,求等值线与这条边相交
出交点位置
对于某棱边,如果它的两个端点 v1、v2 标记不同,那么等值面一定与此棱边相交。且交
点坐标为:
P=P1 + <isovalue - V1 > <P2 - P1 > / <V 2 - V 1 >
其中 P 代表等值点坐标,P1、P2 代表两个端点的坐标,V1、V2 代表两个端点的灰度值,
isovalue 代表阈值。
对于每个四边形来说,每个顶点两种情况〔大于或小于,4 个顶点共 16 种情况〔图 2a,考
虑到旋转对称性,从新分类后可得 4 种基本模式〔图 2b。
图 2
这些 2D 图像正是 3D Marching Cubes 算法中立方体各个表面的等值线抽取情况。
在 3D 中,由于每一立方体共有 8 个顶点,每个顶点共有 2 个状态〔物体内和物体外,因此
共有 256 种组合状态,分析立方体体素的 2 种对称性:
〔1 顶点状态反转,等值三角面片的拓扑结构不变,也就是讲,大于等值面与小于等值面的
点是可以相互替换的。
〔2 旋转对称性,经过适当旋转,有许多状态是一致的。
这样,可归纳出 15 种模式〔见图 3a。
对于模式 0-7,其补充模式见图 3b,而模式 8-14,由于有 4 个顶点,本身就包括了自己的互
补模式。
图 3a 15 种模式
.