VoxelManager 文档
VoxelManager 是 Cornerstone 库用于处理体素数据和体积管理的新架构的关键组件。此更新的设计简化了数据流并增强了性能,为图像缓存和数据访问提供了单一事实来源,重点是减少内存使用并提高处理大型图像数据集的性能。
概述
通过集成 VoxelManager,体素数据处理从依赖大型标量数组转变为使用单个图像和目标体素数据访问方法。 VoxelManager 充当与体素数据交互的工具和功能的适配器,提供访问、修改和流式传输体素信息的有效方法。
主要特点
- 单一事实来源:仅使用图像缓存,无需单独的体积缓存并减少同步问题。
- 高效的体积流:逐个加载图像,仅缓存必要的内容并将数据直接流式传输到 GPU。
- 优化缓存:数据以其本机格式存储,并仅根据需要进行转换,最大限度地减少内存和处理开销。
- 简化的 Web Worker 实现:删除了
SharedArrayBuffer
依赖项,简化了安全性和工作人员要求。
VoxelManager API
VoxelManager API 使用提供对体素数据的精确控制而无需生成大型数据数组的方法取代了直接标量数据访问。以下是主要方法和使用模式:
访问体素数据
getScalarData()
:返回单个图像的标量数据数组(仅适用于“IImage”)。getScalarDataLength()
:提供总体素计数,替换“scalarData.length”。getAtIndex(index)
:检索特定线性索引处的体素值。setAtIndex(index, value)
:设置特定线性索引处的体素值。getAtIJK(i, j, k)
:获取 IJK 坐标处的体素值。setAtIJK(i, j, k, value)
:设置 IJK 坐标处的体素值。getArrayOfModifiedSlices()
:列出修改后的切片索引。
数据操作
forEach(callback, options)
:使用回调迭代体素以处理或修改数据。toIndex(ijk)
:将 IJK 坐标转换为线性索引。toIJK(index)
:将线性索引转换回 IJK 坐标。