3D医学系列·VolumeModels 演示示例: Volume head; Volume flow; Volume geo; Volume skeleton; Volume wave interference
VolumeModels 方法用于通过Direct Volume Rendering实现体数据可视化。VolumeModel 获取其中的体数据并将其可视化。LightningChart的体渲染引擎是基于Volume Ray Casting。
该算法通过沿着在数据集内移动的光线轨迹的体积数据采样来生成图像。Volume Ray Casting的硬件加速的简单实现需要为体对象生成边界。通常,它们由一个立方体表示。该技术的主要优点是在没有伪像的情况下,具有较高的渲染质量,并且使用了可互换的射线功能。
RayFunction是算法的核心,为其提供了非常高的灵活性。该一方法非常强大,因为它指定了数据采样和组合数据的方式。这使得它成为一个非常有用的特征提取工具。
注意! 只有当采用DirectX 11渲染时,VolumeModels才可用。
加载数据
关于如何将数据导入到VolumeModel中有几种方法:
• 数据可以作为表示数据集切片的图像集提供给Data属性
• 数据可以通过多种方式直接提供给VolumeModel的构造函数
• 数据可以通过一个加载函数提供给VolumeModel
加载函数和构造函数允许将数据作为切片的集合(类似于data属性)提供,或者作为字符串提供切片所在文件夹的路径。数据也可以作为一种用我们的工具所创建的纹理地图提供。一个纹理图由切片组成,但是其补充也需要关于图片上的切片数量的更多信息。这是高效使用GPU输入缓冲器所必需的。纹理图可以通过ChartTools.CreateMap函数创建。直接导入纹理地图用来加快启动一个非常大的数据集的应用程序。
属性
VolumeModel 包含LightningChart 中3D对象的典型属性,例如Visible、Rotation、Size、Position、MouseInteraction和 MouseHighLight。此外,对象有一些特别的属性,可以规定Volume Rendering引擎如何处理它。
图:VolumeModels 属性树
射线功能
用RayFunction 属性可以在LightningChart Volume Rendering Engine中的三种体素采样及组合方式中选择一种:
• RayFunction.Accumulation 可以收集并组合尽可能多的数据。这种技术产生的可视化效果看起来像是半透明的凝胶。下图展示了一个实现医疗数据集可视化的RayFunction.Accumulation应用程序示例。
图:RayFunction.Accumulation的医疗应用程序示例
• RayFunction.MaximalIntensity 只考虑射线采样的最亮值。在视觉上,它提供了一个与X射线图像非常类似的结果。通过它可以获得关于对象内部结构的更多信息。以下展示了用于骨架可视化和超声波干涉仿真的RayFunction.MaximalIntensity应用程序。
图:一个 Maximum Intensity Ray Function (最大强度射线功能)应用程序示例
• RayFunction.Isosurface 以一种类似多边形模型渲染的方式绘制模型表面。其结果与用Indirect Volume Rendering生成的类似。 图片显示了人类颅骨CT可视化和水流模拟的RayFunction.Isosurface应用程序示例。
图:一个Isosurface Ray Function (等值面射线功能)应用程序示例
Threshold 阈值
Volume Rendering Engine可以通过属性对VolumeModel应用一个阈值范围。每种颜色通道都有单独的边界。只有当相应的颜色值在所有通道中低于高界限,高于低界限时,体素才能直观的显示出来。符合条件的区域是不可见的。鼠标点击测试时不考虑此属性。
图:两个不同阈值设定示例
Slice Range (切片范围)
用SliceRange 属性可以切去VolumeModel的一部分。这对于探测对象的内部结构是一个很有用的方法。SliceRange 包含有连个界限: Min 和Max, 二者均由三个指向(对准)的浮点值表示。
图:Accumulation Ray Function 与SliceRange 修改示例
Sampling Rate Options 采样率选项
SamplingRate 是最终图像质量的一个非常重要的属性。它定义了沿着射线的轨迹对体数据集进行采样的频率。较高的SamplingRate 可以生成更好的质量,但是也需要更强的硬件性能。SamplingRate 影响着 RayFunction 选项,特别是 Accumulation。当使用Maximal Intensity时,由低采样率产生的伪影更不明显。此外,在非常高的采样率情况下,Isosurface (等值面)可能会非常清晰。通常,最佳点等于沿着射线轨迹放置在一侧的体素的数量。
SamplingRateOptions 包含有用于SamplingRateManager设置的几个选项。 SamplingRateManager 用来达到硬件质量和帧速率之间的最佳平衡。默认情况下,通过将其属性Enabled设置为true来打开 SamplingRateManager 。若设置为 false, 则可以利用ManualSamplingRate 值。 SamplingRateRange 可以定义SamplingRateManager的界限。 Inertness 规定了在性能发生变化时采样率的反应有多快。TargetFPS 是一个目标值,即采样率管理器试图达到的值。
图:低采样率示例: 32(左), 64(右)
平滑度
Smoothness 属性可防止表面出现过高的细节化程度。这可以让模型表面更平滑,并进行降噪,减少过多的伪影。
图:过高采样率示例,经平滑度属性修整。
EmptySpaceSkipping
EmptySpaceSkipping 属性可定义空白空间的分辨率,跳过采样。EmptySpaceSkipping 设定一个值低(16-32),可提高性能,但会导致在模型边缘产生伪影。
图:EmptySpaceSkipping 属性值过低示例
Opacity (不透明度)
Opacity 规定了RayFunction的Accumulation选项的性能。Opacity越低,对象将越透明。
图:Accumulation Ray Function Opacity 修改示例: 15% (左), 45(右)
亮与暗
这些属性定义了图像的传递函数。每个变化都有自己的传递函数。可由线性函数表示为:
关于LightningChart数据可视化工具使用篇58-3D医学系列·VolumeModels 章节就分享到这里了。
如果在实际应用中遇到技术问题或需要帮助,可以扫描下方微信二维码联系LightningChart官方技术支持。 如果您想进一步使用LightningChart数据可视化图形控件,请添加后回复“学习”可免费领取一套全功能版LightningChart数据可视化控件。
后续我会不断更新LightingChart更详细的使用方法,写文不易,还望多多回复关注支持!谢谢! 最新版V10 LightningChart下载地址:猛击下载
|