典型的标量体积数据由三维数据数组和三个相同维度的坐标数组组成。坐标数组指定x-,y-,Z-每个数据点的坐标。
坐标的单位取决于数据的类型。例如,流量数据可能有英寸的坐标单位和psi的数据单位。
MATLAB中的若干问题®函数对于可视化标量数据非常有用:
标量数据的示例包括磁共振成像(MRI)数据。该数据通常包含穿过体积(如人体)的多个切片平面。MATLAB包括一个MRI数据集,其中包含27个人头图像切片。此示例说明了应用于MRI数据的以下技术:
核磁共振数据,D
,存储为128-x-128-x-1-x-27数组。第三个数组维度通常用于图像颜色数据。但是,由于这些是索引图像(颜色映射,地图
在第三维中没有任何信息,可以使用挤压
命令结果是128×128×27阵列。
第一步是加载数据并将数据数组从4-D转换为3-D。
载荷D=挤压(D);
要显示其中一个MRI图像,请使用形象
命令:
figure colormap(地图)图像数量=8;图像(D(:,:,图像数量))轴图像
保存x-和Y-示例下一部分中使用的轴限制:
x=xlim;y=ylim;
将MRI数据可视化为体积数据,因为它是通过三维对象逐步获取的切片集合。使用轮廓切片
显示体积切片的等高线图。创建一个等高线图,与本例第一部分中创建的图像的方向和大小相同:
为了提高细节的可见性,此等高线图使用喷气式飞机
彩色地图。这个照亮
函数可降低颜色值的亮度。
厘米=变亮(jet(长度(map)));图colormap(cm) contourslice(D,[],[],image_num) axis ij xlim(x) ylim(y) daspect([1,1,1])
与图像不同,图像是二维对象,轮廓切片是三维对象,可以以任何方向显示。例如,可以在三维视图中显示四个等高线切片。
figure colormap(cm)轮廓切片(D,[],[],[1,12,19,27],8);视图(3);轴紧
可以使用等值面显示体积的整体结构。当与等雨量点相结合时,该技术可以揭示等值面内部的数据信息。
首先,对数据进行平滑处理smooth3
;然后使用等值面
计算等值数据。使用色斑
在使用原始灰度颜色贴图的图形中显示此数据。
figure colormap(贴图)Ds=smooth3(D);hiso=面片(等值面(Ds,5),…'FaceColor',[1,75,65],…'EdgeColor','none');等法线(Ds、hiso)
这个等法线
函数使用从平滑数据获得的顶点法线渲染等值面,从而提高等值面的质量。等值面使用单一颜色表示其等值。
使用等雨量点
计算以相同等值显示的另一个补丁的数据(5.
)作为等值面。使用非平滑数据(D
)以显示内部的细节。你可以看到这是被切掉的头顶。在最终视图中,下部等雨量线不可见。
hcap =补丁(isocaps (D, 5),…“FaceColor”、“插值函数”,…“EdgeColor”,“没有一个”);
视图(35,30)轴紧daspect([1,1,.4])
添加光照并根据体积数据的梯度重新计算表面法线,这将产生更平滑的光照(camlight
,照明
,等法线
).增加AmbientStrength
在不影响等值面的情况下,使颜色变亮。设置镜面反射
,使镜面反射光的颜色更接近等值面的颜色;然后设置镜面反射元件
减小镜面反射光斑的大小。
光角度(45,30);照明gouraud hcap.AmbientStrength=0.6;hiso.SpecularColorReflectance=0;hiso.SpecularComponent=50;
iscap与等值面结合,可视化MRI数据。
等帽使用插值的面部着色,这意味着图形着色图决定了补丁的着色。这个例子使用了数据提供的颜色图。