VTK体绘制(学习笔记)

体绘制即对提数据进行操作并生成图形的方法。更多的时候,把它称为三维重建(区别于投影图像的三维重建)。与面绘制不同,它不需提取体数据内部的等值面,而是对三维体数据进行采样和合成的过程。体数据能过通过设置不透明度值来显示体数据内部的不同成分和细节,体绘制是3D体数据可视化的主要技术,与平面图形相比,体图形在非均匀材料方面具有更大的表现范围。计算机图形绘制中存在两个基本的技术:

1. 使用简单的混合函数模拟物理透明度
    在计算机图形学中,透明度和它的补充以及不透明度,通常被称为alpha。RGB 可扩展为RGBA ,其中A表示 alpha 的值。计算机中的frame buffer存储着alpha的值。在透
明物体的绘制中存在两个主要问题:1. 物体摆放位置的问题,因为每个物体透射率不同,因此摆放位置不同最终的alpha
值也不同。 2. buffer 的存储是8位的,对于成千上万的透明多边形的绘制可能会出错。
2. 使用纹理增加真实度

    纹理映射是对图形增加细节单不需要modelling detail 的一种技术,可以理解为在物体表面贴一张图片。带有一个组件component的纹理映射称为强度intensity映射, 在HSV值表示下,纹理映射之后的 hue 和 saturation 值保持不变,但是 intensity 的值改变。

纹理映射可以作为数据的函数进行生成;纹理坐标可以作为数据的函数进行生成;纹理映射可以做成时间函数的一个动画。

体绘制

基于成像顺序 Image -order 的体绘制

典型应用:光线投射或者光线跟踪。

用到的技术:分类 classification, 体照度 volumetric illumination, 插值函数 interpolation function, 采样技术。

基本思想:基本思想是从图像平面的每个像素都沿着视线方向发出一条射线,此射线穿过体数据集,按一定步长进行采样,由内插计算每个采样点的颜色值和不透明度,然后由前向后或由后向前逐点计算累计的颜色值和不透明度值,直至光线完全被吸收或穿过物体。

光线投射法的函数:等值面绘制函数(vtkVolumeRayCastIsosurfaceFunction),最大密度投影函数(vtkVolumeRayCastMIPFunction,MIP)和合成体绘制函数(vtkVolumeRayCastCompositeFunction)。在等值面绘制方法中,光线穿过数据场中待显示的等值面,通过设定等值面的值,可以重建出某一特定的组织,如皮肤、骨骼等,结果图像类似于表面显示。最大密度投影方法是通过计算光线穿过数据场时遇到的最大密度值进行绘制,它可以看作是最简单的一种体绘制,不必明确定义体数据和颜色值间的转换 。该方法常用于显示血管的三维结构。MIP不能提供深度信息,也无法描述重叠的结构。合成体绘制通过传递函数将体数据值转换成颜色、不透明度等光学属性,最后将这些属性合成到屏幕上的像素中形成三维图像。常用的传递函数如下:
(1)不透明度传递函数。该函数确定各体素或单位长度值的不透明度;
(2)颜色传递函数。该函数确定体素的颜色值或者灰度值;
(3)梯度传递函数。该函数确定不同梯度值的不透明度,从而突出不同组织之间的结构和相互之间的层次关系。

基于对象顺序 Object- order 的体绘制

典型的算法:抛雪球算法 Splatting,二维纹理映射体绘制 2D texture mapping 和三维纹理映射2D texture mapping体绘制。

二维纹理映射体绘制主要思路:将每个坐标轴方向的切片作为二维纹理保存到图形硬件缓冲中,在光线投影时,选择与当前视线方向垂直的一组纹理图像,在硬件中进行插值和合成运算以实现体绘制。

三维纹理映射体绘制将体数据映射至一组与视图平面平行的多边形,避免了二维纹理映射方法中因为纹理图像的切换造成的瑕疵。绘制方法与2维纹理映射体绘制方法一致。

理论上,3D纹理映射体渲染器和射线投射体渲染器有相同的计算,相同的复杂度O(n3),并生成相同的图像。这两中方法都用到了近邻或者三维插值算法以及使用最大值或合成函数组合样本以形成像素值。

VTK可视化管线即图形渲染管线与体绘制可视化管线的区别

两者组成是比较一致的, 包含vtkRenderWindow、vtkRenderer、vtkActor/vtkVolume、vtkMapper等对象。
不同之处在于:
几何渲染中,通常使用vtkActor来渲染几何图像数据,使用vtkImageActor来渲染图像数据;而在体绘制中,则使用vtkVolume渲染数据。在几何渲染中,通常采用vtkPolyDataMapper实现输入数据向图元数据的转换;在体绘制中,则采用vtkVolumeRayCastMapper,这个类是与体绘制的算法相关的,不同的体绘制算法会有不同的Mapper类。
几何图像渲染管线与体绘制的渲染管线对比图如下:

两种渲染方式不同点主要体现在Mapper和Actor对象上。

为了使体绘制更加高效,常用的一个技术是 space–leaping。该技术的前提是保证图片的质量。但是此技术多度以来数据,当数据完全由高频信息组成(如超声波)时,这些技术会失效甚至导致渲染时间增加。

你可能感兴趣的:(VTK,医学图像处理)