第四讲三维标量场数据可视化

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

算法
Marching cubes 算法缺点
第3步:三角形是选择 不唯一?
Marching Cubes算法
存在问题
15种连接情形中,有些存在二义性,可能导致所生成的相邻体 素的等值面之间不连续,从而使最终生成的等值面存在“空洞”
+
-
+
-
+
-
(a)
+
(b)
+
(c)
+
39
算法二义性
二义性问题,可以判断交 叉口一双值寻找鞍点连接
维数据场按一定顺序排列组成的,各断层数据之间有很大 的相关性。断层数据广泛存在于医学、生物、地质、无损 探伤等应用领域,其各断层间相互平行,每一断层与实体 的交线就是实体在该断层的轮廓线。如果先在各层之间找 出物体的边界线,再利用断层之间的连贯性,就可以从一 系列断面上的轮廓线中推导出相应物体的空间几何结构。
V8 V7 V6 V4 V1 V2 V3
8-字节索引 ; 1+ve;0 -ve 1 1 0 0 0 0 0 1
V1 V2 V3 V4 V5 V6 V7 V8
V5
代码标识边的相交:V1V4; V1V5; V2V3; V2V6; V5V8; V7V8; V4V8
Marching Cubes算法
第2步:查找表标识出等值面交点个数 例如:
(C 0 D2 ) * V1 ( D1 C 0 ) * V2 P ( D1 D2 )
31
Marching Cubes算法
将体素各边与等值面的交点连接成三角形
取决于体素每一顶点的状态值分布情况 存在着28种不同情况
每一体素有8个顶点 每一顶点有两种状态值
基于体素顶点状态翻转对称性和旋转对称性,将上述256种组合 情形减少到15种
断层间的构造等值面 (断层间表面重构)

在一个断层中找出物体的轮廓线可以利用上面介绍的等值线方法。 找到所有轮廓线后,第二步是在各个相邻的轮廓线之间构造出物体的 表面,然后进行绘制。物体的表面可以用三角面片拼接出来,拼接的 方法如图所示,就是在相邻的两层上找出三个点,其中两个点在同一 层,另一个点在另一层。在拼接过程中,一次加入一条边,就可以组 成一个三角面片,但加入一条边有两种选择,例如图中P1Q2和P2Q1 ,如果选择不恰当,则拼接出的表面比较乱,也不光滑。最简单的选 择方法可以采用贪心方法,就是每次选择一条较短的边加入,这样可 以保证构造出的表面比较光滑。
顶点 f011 f001 体素 每个体素转换 单位立方体 f111
体数据
f101 f010 f110 f100
f000
数据增强 - 最近邻插值
体素内的任意点都用最近邻插值计算 f011 f111
速度快 不连续
f001
f101
f010 f000 f100
f110
数据增强 -三线性插值
三线性插值:
f(x,y,z) = f000(1-x)(1-y)(1-z) + f100x(1-y)(1-z) + f010(1-x)y(1-z) + f001(1-x)(1-y)z + f110xy(1-z) + f101x(1-y)z + f011(1-x)yz + f111xyz f011 f001 f101 f111
三 角 面 片 拼 接 物 体 表 面
面绘制算法
将三维数据场中具有某种共同属性的采样点按其空间位 置连接起来,构成一张连续表面,然后对抽取出的表面 进行绘制 等值面算法
等值面:在一给定三维数据场中,采样值均为某一给定值的所 有空间点的集合 三维标量场可视化中最常用 Marching Cubes方法
翻转对称性:如果体素各顶点的状态值0和1互换,所含等值面的 拓扑结构(即交点连接关系)不变 旋转对称性:体素旋转后,所含等值面的拓扑结构不变
32
Marching Cubes算法
15种等值面连接模式
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14 33
Marching Cubes算法
第1步:8个顶点相对的等值面的值分类
f*
f2 f1
根据f*反求
x1
t
x2
t = (f* - f1)/(f2 –f1)
f* f2 f1
x1
t
x2
等值面建立 – 一个顶点为正的情况
连接交叉点,形成了一个三角形 等值面的一部分
等值面建立 – 正顶点在对应角处
等值面建立
通过分析这种方式所有256种情况,尽管它很相差 很大,很多情况下是相似的。 例如:
科学计算可视化
三维平面数据场可视化
Visualization Techniques Three Dimensional Scalar Data
三维标量场可视化
三维空间数据场方法
三维空间数据场与二维数据场不同,它是对三维空间中的采样,表示了一 个三维空间内部的详细信息,这类数据场最典型的医学CT采样数据,每 个CT的照片实际上是一个二维数据场,照片的灰度表示了某一片物体的 密度。将这些照片按一定的顺序排列起来,就组成了一个三维数据场。此 外,用大规模计算机计算的航天飞机周围的密度分布也是一个三维数据场 的例子。
三线性插值精确等值面
一个真正Biblioteka Baidu等值面 三线性插值 是曲面
轮廓线是双曲线
Marching Cubes算法
存在问题及改进
所生成的等值面中往往包含大量的三角面片,影响存储与绘制 的效率 改进方法之一:对所生成的等值面三角形网格进行简化 改进方法之二:采用适用于密集数据场等值面生成的Dividing Cubes算法
SPECT 单光子发射计算机断层成像术
断层间的构造等值面 (断层间表面重构)
断层数据的表面重构是从一系列断面上的轮廓线 推导出实体的空间几何结构 相邻层的轮廓线位于相互平行的两个平面
断层间的构造等值面 (断层间表面重构)
如果在相邻两层,各自只有一条轮廓线,其三维 重构问题称为单轮廓线重构问题 如果在相邻两层,有多条轮廓线,其三维重构问 题称为多轮廓线重构问题
00000000 10000000 01000000 … 11000001 ... 11111111
Configuration 0 Configuration 1 Configuration 1 Configuration 6 Configuration 0
Marching Cubes算法
第3步:沿边缘的逆线性插值将找到的交汇点
算法歧义
歧义原因,因为: 三线性插值是线性沿边缘 就成了一个双线性函数...正确的拓扑结构,我们 必须加入一个正确的交点
产生歧义的不同三角面
Marching Cubes算法
存在问题及改进
改进方法之一:增加连接模式,使其能与相邻体素的状态相匹 配以消除“空洞”
3c
6c
7c
10c
建立等值面
简单起见,以数值为零的水平等值面为例,并记
正顶点为
立方体有八, 均为正或均为负。 共计 28 = 256 不同情况
以下两种最简单
此时,立方体内部无等值面部分
等值面建立 – 一个顶点为正的情况
逆线性插值的交点
逆线性插值
根据线性插值公式 t处的函数 值:
f(x*) = f1 + t ( f2 - f1 )
断层间的构造等值面 (断层间表面重构)
主要应用领域是医疗成像 不同的扫描技术包括:
CT(计算机断层扫描) MRI MRI(核磁共振成像) 多个二维切片的三维图像
切片 切片间的空隙 扫描仪给平均 一个地区价值 - 而 不是在一个点的值
切片
断层间的构造等值面 (断层间表面重构)
CT
MRI
12c
13c
42
Marching Cubes算法
存在问题及改进
改进方法之二:将六面体体素分解为四面体单元,并将等值面 抽取限制在四面体单元中进行
43
等值面空洞
由于二义性三角面的存在 ,会造成空洞出现。
孔洞
三线性插值
三线性插值函数: f(x,y,z) = f000(1-x)(1-y)(1-z) +f100x(1-y)(1-z) +f010(1-x)y(1z) + f001(1-x)(1-y)z +f110xy(1z) +f101x(1-y)z +f011(1-x)yz +f111xyz 相对复杂。 例如, 等值面 f(x,y,z) = 0 为三次平面
顶点都为正或为负的2种情况,都没有等值面 16种情况,其中一个顶点从所有其他符号相反
实际上,仅有15 拓扑不同的情况。
256种可能的情况 可以归纳为这15个 基于典型个案 互补的基础上 (顶点为正和负的互换) 和旋转对称 这样做的好处是 为便于实施 - 我们 只需要代码15种情况代替 256种
第4步:规范的配置将决定如何创建等值面片(0,1,2 ,3或4个三角形) 第5步:通三角形的显示渲染
Marching Cubes算法找等值面
优点 等值面提取边效果较好 定义为三角形在3D表面 - 著名的渲染技术提供照 明,阴影和观看...硬件支持 缺点 只显示数据切片 有二义性
47
体绘制方法
在自然环境和计算模型中,许多对象和现象只能用三维
数据场表示,对象体不是用几何曲面和曲线表示的三维实 体,而是以体素为基本造型单元。例如人体里面就十分复 杂,如果仅仅用几何表示各器官的表面,不可能完整显示 人体的内部信息。体绘制(Volume Rendering)的目的就在 于提供一种基于体素的绘制技术,它有别于传统的基于面 的绘制技术,能显示出对象体的丰富的内部细节。
当处理完所有体素后,即完成了整个数据场的等值面抽取与绘 制
28
Marching Cubes算法
确定体素顶点状态
设所需抽取的等值面的属性值为C0 若某顶点V所存贮的数据值大于(或等于)C0,则认为V在等值 面外侧(或位于其上),并记其状态值为1 反之,若V所存贮的数据值小于C0,则认为V在等值面内侧,并 记其状态值为0
29
Marching Cubes算法
确定体素顶点状态
Example:5个顶点均位于外侧,记为10111100
v8 v4 v3 v7
v5 v1 v2
v6
Case = v8|v7|v6|v5|v4|v3|v2|v1
30
Marching Cubes算法
判别体素的边与等值面是否有交
对于某一条边E(其顶点为V1和V2),若V1和V2的状态值相同, 则边E位于等值面的外侧(或内侧) ,边E不与等值面相交 ; 反之,若V1和V2的状态值不同,边E必定与等值面相交 若边E与等值面有交点,可通过线性插值计算出交点
f010 f000 f100
f110
数据增强 -三线性插值
表示的数值由如下表示
f111 (i) 4 个1维x 方向的插值 (ii) 2 个1维y方向插值 (iii) 1个 1维z方向插值 f010 f000 f100 f110 f001 f011 f101
From University of Bonn
Marching Cubes算法
思想:基于“分治(divide-and-conquer)”思想将整个 数据场的等值面抽取分解到每一个体素中去完成
27
Marching Cubes算法
算法概述
读入三维规则标量场 对于每一体素
依据所需抽取的等值面的属性值,确定其8个顶点的状态 对于体素的每一条边,依据顶点状态,判别它是否与等值面有交 点。若交点存在,则求出交点 在求出了当前体素的所有边与等值面的交点后,依据一定的准则 将这些交点连接成三角形,作为等值面位于该体素内部分的近似 表示,并进行真实感绘制
10
等值面生成(面绘制)
等值面生成(面绘制)
构造物体的表面也可以采用等值面的方法。等值面可以看成是等值 线的三维扩展。等值面的构造也就是等值线构造方法的三维扩展,最 典型的就是Marching Cube方法。二维数据场的基本单元是矩形,在 三维空间的基本单元是一个小立方体。如果我们找出每个小立方体中 的等值面,这些等值面也就构成了整个物体的表面。
表 面 绘 制 方 法 绘 制 的 动 物 骨 骼 表 面
Marching Cubes算法
数据集
适用于三维规则标量场 每一立方体单元称为一个体素(voxel),数据场的数据值分布 在体素的8个顶点上 典型代表:CT数据、MRI数据
灰质 白质
Voxel
13
Marching Cube方法
三维空间数据场方法主要分为:
1、抽取表面信息的可视化方法(面绘制) 值面生成
: 分为断层间的构造等值面 、等
2、直接体绘制方法(体绘制) :光线投射 、投影方法 、其它体绘制方法
抽取表面信息的可视化方法 (面绘制)
断层间的构造等值面 (断层间表面重构) 如CT采样数据场这样的三维数据,可以看成是由一些二
相关文档
最新文档