- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
原子能
Marching Cubes算法(医学图像三维绘制中的面绘制)2007-08-16 00:50建议要看的资料
[1] Lorensen W E, Cline H E .Marching cubes: a high-resoulution 3D suface construction algorithm [J], Computer Graphics,1987, 21(4):163~169
[2]集成化医学影像算法平台理论与实践田捷,赵明昌,何晖光 清华大学出版社2004年10月
[3]Polygonising a scalar field Also known as: 3D Contouring, Marching Cubes, Surface Reconstruction
.au/~pbourke/geometry/polygonise/Marching Cubes;
[4]
Marching Cubes算法工作原理
Marching Cubes算法是三维数据场等值面生成的经典算法,是体素单元内等值面抽取技术的代表。
等值面是空间中所有具有某个相同值的点的集合。它可以表示为, ,c是常数。则称F(f)为体数据f中的等值面。
在MC算法中,假定原始数据是离散的三维空间规则数据场。用于医疗诊断的断层扫描(CT)及核磁共振成像(MRI) 等产生的图像均属于这一类型。MC算法的基本思想是逐个处理数据场中的体素,分类出与等值面相交的体素,采用插值计算出等值面与体素棱边的交点。根据体素中每一顶点与等值面的相对位置,将等值面与立方体边的交点按一定方式连接生成等值面,作为等值面在该立方体内的一个逼近表示。在计算出关于体数据场内等值面的有关参数后山常用的图形软件包或硬件提供的面绘制功能绘制出等值面。
图2.1 离散的三维空间规则数据场中的一个体素
2.1.1 MC算法的主要步骤
1. 确定包含等值面的体素
离散的三维空间规则数据场中的一个体素可以用图2.1表示。8个数据点分别位于该体素的8个角点上。MC算法的基本假设是:沿着体素的边其数据场呈局部连续线性变化,根据这个假设,可认为,如果两个相邻采样点一个为正点,一个为负点,则它们连成的边上一定存在且仅有一个等值点 (设等值面值为c)。如果得到了体素各条边上的等值点,就可以以这些点为顶点,用一系列的三角形拟合出该体素中的等值面。因此确定立方体体素中等值面的分布是该算法的基础。
首先对体素的8个顶点进行分类,以判断其顶点是位于等值面之外,还是位于等值面之内。再根据8个顶点的状态,确定等值面的剖分模式。顶点分类规则为:
1. 如体素顶点的数据值大于或等于等值面的值,则定义该顶点位于等值面之外, 记为正点,即“1“
2. 如体素顶点的数据值小于等值面的值,则定义该顶点位于等值面之内,记为负点, 即“0
由于每个体素共有8个顶点,且每个顶点有正负两种状态,所以等值面可能以 =256种方式与一个体素相交。通过列举出这256种情况,就能创建一张表格,利用它可以查出任意体素中的等值面的三角面片表示。如果考虑互补对称性,将等值面的值和8个角点的函数值的大小关系颠倒过来,即将体素的顶点标记置反(0变为1, 1变为0),这样做不会影响该体素的8个角点和等值面之间的拓扑结构,可将256种方式简化成128种。其次,再利用旋转对称性,可将这128种构型进一步简化成15种。图3.2给出了这15种基本构型[131其中黑点标记为“1”的角点。
图2.2 分布状态表
图2.3 体素角点分布不同情况
基于上面的分析,MC算法中用一个字节的空间构造了一个体素状态表,如图2.2所示,该状态表中的每一位可表示出该体元中的一个角点的0或1的状态。根据这一状态表,就可知道当前体素属于图2.3中哪一种情况,以及等值面将与哪一条边相交。
2.求等值面与体元边界的交点
在确定体素内三角剖分模式后,就要计算三角片顶点位置。当三维离散数据场的密度较高时,即当体素很小时,可以假定函数值沿体素边界呈线性变化,这就是MC算法的基本假设。因此,根据这一基本假设,可以直接用线性插值计算等值面与体素边的交点。
对于当前被处理体素的某一条边,如果其两顶点 , 的标记值不同,那么等值面一定与此边相交,且仅有一个交点。交点为 其中P代表等值点坐标, , 代表两个端点的坐标, , 代表两个端点的灰度值,v代表域值。求出等值面与体素棱边的交点以后,就可以将这些交点连接成三角形或多边形,形成等值面的一部分。
3.等值面的法向量计算
为了利用图形硬件显示等值面图象,必须给出形成等值面的各三角面片的法向分量,选择适当的局部面光照模型进行光照计算,以生成真实感图形。
对于
文档评论(0)