YB体育VTK图像处理(三)--体绘制
发布时间:2024-02-05 10:26:56

  YB体育光线投影法,如:vtkVolumeRayCastMapperYB体育、vtkFixedPointVolumeRayCastMapper、vtkGPUVolumeRayCastMapper;

  基于纹理绘制算法,如:vtkVolumeRayTestureMapper2D、vtkVolumeRayTestureMapper3D;

  对象来体绘制的颜色映射,如不透明度函数、颜色传输函数、梯度不透明函数以及设置阴影效果等。

  是一种基于图像序列的直接体绘制方法,其基本原理是从投影图像平面的每个像素沿着视线方向发射一条穿过体数据的射线,然后在射线上按照一定的步长进行等距采样,对每个采样点采用插值技术计算其体素值,根据颜色传输函数和不透明度传输函数来获取相应的颜色值和不透明度,最后利用光线吸收模型将颜色值进行累加,直至光线穿过体数据,即可得到当前平面像素的渲染颜色,生成最终显示图像。

  SetVolumeRayCastFunction(vtkVolumeRayCastFunction*)

  :通过Alpha合成技术生成每个像素的颜色值。对每个采样点采用插值技术计算其体素值,根据颜色传输函数和不透明度传输函数来获取相应的颜色值和不透明度,最后对所有采样点用Alpha合成方法计算最终的颜色。

  插值优先设置函数:SetCompositeMethodToInterpolateFirst();

  分类优先设置函数:SetCompositeMethodToClassfyFirst();

  :最大密度投影函数,主要用于对体数据中搞灰度值的结构进行可视化。当光线穿过体数据时,在光线上进行等距采样。取采样点中属性最大值为该条光线的输出。

  函数用于设置等值面的值,在进行体绘制时,所有小于该值的像素不透明度都设置为。

  从效果上看,光线投射法体绘制效果最好,最大密度投射法缺乏深度信息,二等值面投射法体绘制可以对体数据的某个等值面进行显示和观察,于面绘制效果类似。

  ,步长越小,采样点越多,效果越好。但计算量变大。当数据变化剧烈时,应该减少采样步长以获得更好的效果。

  该类能够实现基于Aplha合成的体绘制方法和最大密度投影体绘制方法,能够支持任意类型的一元或者独立多元数据YB体育。该类使用了空间跳跃技术来加速体绘制渲染过程,而且在内部计算时统一使用了

  主要原理是将3维体数据作为纹理载入图像硬件缓存中,利用硬件来实现插值以及图像合成操作,以提高绘制效率。

  主要利用硬件的三线性过滤插值能力,通过渲染多个与视线垂直的面片来重建整个三维结构。

  在光线投射时,选择与当前视线方向垂直的一组纹理图像,在硬件中进行插值和合成运算以实现体绘制。类

  数据的裁剪,该方法在每个坐标轴上定义了两个裁剪面,共6个平面(xmin,xmax,ymin,ymax,zmin,zmax)将3维空间分成27个区域。

  SetCroppingRegionPlanes():设置三个坐标轴6个裁剪面的位置;

  Clipping技术可以由任意方向将图像切开,便于观察内部细节,只需要定义一个

  vtkVolume类似于集合渲染中的vtkActor,用于表示渲染场景中的对象。内部存储了两个重要的对象,分别是

  SetMapper(vtkAbstractVolumeMapper*)

  不透明传输函数是一个分段线性标量映射函数,利用该函数可将光线投射过程中的采样点灰度值映射为不同的不透明度值,以决定最终的颜色值。

  SetScalarOpacity(vtkPiecewiseFunction*);

  AddPoint(double x,double y):第一个参数x为自变量,这里是指灰度值,y则指映射值,这里指不透明度;

  RemovePoint(double x):将自变量值为x的断点删除。

  利用不透明函数可以有选择的对图像中的对象进行显示,对于部显示的对象只需将其对应的灰度范围的不透明度映射为0即可。

  该函数将梯度模值映射为一个不透明度乘子,从而增强过度区域显示效果,同样是使用

  SetGradientOpacity(vtkPiecewiseFunction*);

  颜色传输函数与不透明传输函数类似,不同之处是颜色传输函数是将一个标量值映射为一个颜色值,VTK中用

  AddRGBPoint(double x,double r,double g,double b); AddHSVPoint(double x,double h,double s,double v);

  SetColor(vtkColorTransferFunction*);

  可以设置体绘制的阴影效果,阴影效果主要受环境光系数、散射光系数、反射光系数和高光强度4个参数影响。

  SetDiffuse() //设置散射光系数 SetAmbient() //设置环境光系数 SetSpecular() //设置反射光系数

  对一个大数据来讲,体绘制是一个计算量非常庞大、非常耗时的操作,为了提高绘制速度,引入

  不规则网格的体绘制渲染流程与规则网格绘制的流程一致,不同的是需要选择应用于不规则网格数据的

  vtkUnstructureGridVolumeRayCastMapper

  仅支持4面体数据,非4面体数据需要借助Filter转换一下。该方法需要较大的内存,

  vtkUnstructureGridVolumeRayZSweepMapper

  实现了一种在任何平台下运行的体绘制方法,是不规则网格数据体绘制方法中最慢的一种YB体育,

  实现了HAVS算法,能够快速渲染大数据,但由于该类中使用了较多显卡的高级技术,因此只有在支持这些技术的显卡中才能运行该方法。