第四讲三维标量场数据可视化
建立等值面
简单起见,以数值为零的水平等值面为例,并记
正顶点为
立方体有八, 均为正或均为负。 共计 28 = 256 不同情况
以下两种最简单
此时,立方体内部无等值面部分
等值面建立 – 一个顶点为正的情况
逆线性插值的交点
逆线性插值
根据线性插值公式 t处的函数 值:
f(x*) = f1 + t ( f2 - f1 )
f*
f2 f1
根据f*反求
x1
t
x2
t = (f* - f1)/(f2 –f1)
f* f2 f1
x1
t
x2
等值面建立 – 一个顶点为正的情况
连接交叉点,形成了一个三角形 等值面的一部分
等值面建立 – 正顶点在对应角处
等值面建立
通过分析这种方式所有256种情况,尽管它很相差 很大,很多情况下是相似的。 例如:
断层间的构造等值面 (断层间表面重构)
在一个断层中找出物体的轮廓线可以利用上面介绍的等值线方法。 找到所有轮廓线后,第二步是在各个相邻的轮廓线之间构造出物体的 表面,然后进行绘制。物体的表面可以用三角面片拼接出来,拼接的 方法如图所示,就是在相邻的两层上找出三个点,其中两个点在同一 层,另一个点在另一层。在拼接过程中,一次加入一条边,就可以组 成一个三角面片,但加入一条边有两种选择,例如图中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
断层间的构造等值面 (断层间表面重构)
主要应用领域是医疗成像 不同的扫描技术包括:
CT(计算机断层扫描) MRI MRI(核磁共振成像) 多个二维切片的三维图像
切片 切片间的空隙 扫描仪给平均 一个地区价值 - 而 不是在一个点的值
切片
断层间的构造等值面 (断层间表面重构)
CT
MRI
(C 0 D2 ) * V1 ( D1 C 0 ) * V2 P ( D1 D2 )
31
Marching Cubes算法
将体素各边与等值面的交点连接成三角形
取决于体素每一顶点的状态值分布情况 存在着28种不同情况
每一体素有8个顶点 每一顶点有两种状态值
基于体素顶点状态翻转对称性和旋转对称性,将上述256种组合 情形减少到15种
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 为三次平面
三 角 面 片 拼 接 物 体 表 面
面绘制算法
将三维数据场中具有某种共同属性的采样点按其空间位 置连接起来,构成一张连续表面,然后对抽取出的表面 进行绘制 等值面算法
等值面:在一给定三维数据场中,采样值均为某一给定值的所 有空间点的集合 三维标量场可视化中最常用 Marching Cubes方法
顶点都为正或为负的2种情况,都没有等值面 16种情况,其中一个顶点从所有其他符号相反
实际上,仅有15 拓扑不同的情况。
256种可能的情况 可以归纳为这15个 基于典型个案 互补的基础上 (顶点为正和负的互换) 和旋转对称 这样做的好处是 为便于实施 - 我们 只需要代码15种情况代替 256种
SPECT 单光子发射计算机断层成像术
断层间的构造等值面 (断层间表面重构)
断层数据的表面重构是从一系列断面上的轮廓线 推导出实体的空间几何结构 相邻层的轮廓线位于相互平行的两个平面
断层间的构造等值面 (断层间表面重构)
如果在相邻两层,各自只有一条轮廓线,其三维 重构问题称为单轮廓线重构问题 如果在相邻两层,有多条轮廓线,其三维重构问 题称为多轮廓线重构问题
算法
Marching cubes 算法缺点
第3步:三角形是选择 不唯一?
Marching Cubes算法
存在问题
15种连接情形中,有些存在二义性,可能导致所生成的相邻体 素的等值面之间不连续,从而使最终生成的等值面存在“空洞”
+
-
+
-
+
-
(a)
+
(b)
+
(c)
+
39
算法二义性
二义性问题,可以判断交 叉口一双值寻找鞍点连接
翻转对称性:如果体素各顶点的状态值0和1互换,所含等值面的 拓扑结构(即交点连接关系)不变 旋转对称性:体素旋转后,所含等值面的拓扑结构不变
32
Marching Cube
4
5
6
7
8
9
10
11
12
13
14 33
Marching Cubes算法
第1步:8个顶点相对的等值面的值分类
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步:查找表标识出等值面交点个数 例如:
科学计算可视化
三维平面数据场可视化
Visualization Techniques Three Dimensional Scalar Data
三维标量场可视化
三维空间数据场方法
三维空间数据场与二维数据场不同,它是对三维空间中的采样,表示了一 个三维空间内部的详细信息,这类数据场最典型的医学CT采样数据,每 个CT的照片实际上是一个二维数据场,照片的灰度表示了某一片物体的 密度。将这些照片按一定的顺序排列起来,就组成了一个三维数据场。此 外,用大规模计算机计算的航天飞机周围的密度分布也是一个三维数据场 的例子。
第4步:规范的配置将决定如何创建等值面片(0,1,2 ,3或4个三角形) 第5步:通三角形的显示渲染
Marching Cubes算法找等值面
优点 等值面提取边效果较好 定义为三角形在3D表面 - 著名的渲染技术提供照 明,阴影和观看...硬件支持 缺点 只显示数据切片 有二义性
算法歧义
歧义原因,因为: 三线性插值是线性沿边缘 就成了一个双线性函数...正确的拓扑结构,我们 必须加入一个正确的交点
产生歧义的不同三角面
Marching Cubes算法
存在问题及改进
改进方法之一:增加连接模式,使其能与相邻体素的状态相匹 配以消除“空洞”
3c
6c
7c
10c
00000000 10000000 01000000 … 11000001 ... 11111111
Configuration 0 Configuration 1 Configuration 1 Configuration 6 Configuration 0
Marching Cubes算法
第3步:沿边缘的逆线性插值将找到的交汇点
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与等值面有交点,可通过线性插值计算出交点
10
等值面生成(面绘制)
等值面生成(面绘制)
构造物体的表面也可以采用等值面的方法。等值面可以看成是等值 线的三维扩展。等值面的构造也就是等值线构造方法的三维扩展,最 典型的就是Marching Cube方法。二维数据场的基本单元是矩形,在 三维空间的基本单元是一个小立方体。如果我们找出每个小立方体中 的等值面,这些等值面也就构成了整个物体的表面。
三维空间数据场方法主要分为: