当前位置: 首页 > article >正文

Cornerstone3d 基础概念

基础Cornerstone流程:

  • 获取ImageId
  • 通过Image Loader使用ImageId得到Image Object
  • 通过Rendering Engine使用Image Object渲染到视口Viewports

ImageId

  • 简介:ImageId是一个URL,用于标识单张图片。

在这里插入图片描述

  • ImageId格式:
    • Image Loader(图像加载器):
      • <scheme name>:方案名称,用于确定调用哪个图像加载器插件来加载图像,不同的方案对应不同的图像获取方式或来源,例如http 可能用于从普通 Web 服务器获取图像,dicomweb 用于与遵循 DICOM Web 标准的服务器交互获取医学图像等。
    • Image Loader specific information(图像加载器具体信息):
      • <hierarchical part>:层次部分,包含与图像定位相关的层次化信息,具体内容取决于方案名称和图像加载器的定义,可能包括服务器地址、路径以及各种 UID(唯一标识符)等,用于在特定服务器或存储系统中准确找到图像资源。
      • [?<query>]:查询部分,可选。
      • [#<fragment>]:片段部分,可选。
    • ImageId示例:
      • example://1
      • dicomweb://server/wado/{uid}/{uid}/{uid}
      • http://server/image.jpeg
      • custom://server/uuid
      • wadors://server/{StudyInstanceUID}/{SeriesInstanceUID}/{SOPInstanceUID}

Image Loaders

  • 简介:图像加载器,是一个JavaScript函数,负责接收ImageId并返回一个Image Object
  • 异步要求:由于加载图像通常需要调用服务器,所以图像加载的API必须是异步的。ImageLoaders返回一个包含Promise的对象,cornerstone将使用该Promise异步接收图像对象,或者发生错误时返回错误。
  • ImageLoader工作流程:
    • 通过registerImageLoaderAPI向cornerstone注册。
    • 通过loadImageAPI加载图像(用于堆栈)或通过createAndCacheVolumeAPI加载体积图像。
    • ImageLoader将返回一个Image Load Object,其中包含一个Promise,当它获取到像素数据时会解析该Promise并返回响应的图像对象。
    • 使用renderingEngineAPI进行显示。
  • 可用的Image Loader
    • Cornerstone DICOM Image Loader
      • 用于加载DICOM Part 10 images; Supports WADO-URI and WADO-RS; Supports multi-frame DICOM instances; Supports reading DICOM files from the File objects
    • Cornerstone Web Image Loader
      • 用于加载PNG and JPEG
    • Cornerstone-nifti-image-loader
      • 用于加载NIFTI

Image Object

  • 简介:图像对象或Image load Object是由image Loaders返回的,是一个对象,包含一个Promise,还有其他属性。

Metadata Provides

  • 简介:元数据提供者,是一个JavaScript函数,充当访问于Cornerstone中图像相关的元数据的接口。
  • 元数据:非像素级的数据,例如:图像的像素间距、病人id或日期等数据,一般存储在文件头中。

Volume Loaders

  • 简介:与Image Loaders类似,体积加载器接收一个volumeId和其他加载体积所需的信息,并返回一个解析为VolumePromise。这个Volume可以由一组 2D 图像(例如imageIds)构造而成,或者可以来自一个 3D 数组对象(例如NIFTI格式)。
  • cornerstoneStreamingImageVolumeLoader:用于支持将 2D 图像(imageIds)流式传输为 3D 体积,是流式体积的默认体积加载器。

Volumes

  • 简介:体积是一个 3D 数据数组,在空间中有物理大小和方向。它可以通过组合 3D 成像系列的像素数据和元数据构建,也可以由应用程序从头开始定义。一个体积具有FrameOfReferenceUIDvoxelSpacing (x,y,z)(体素间距)、voxel dimensions (x,y,z)(体素尺寸)、origin(原点)和orientation(方向)向量,这些属性唯一地定义了其相对于患者坐标系的坐标系。
  • ImageVolume:在Cornerstone3D中,使用ImageVolume基类来表示 3D 图像体积,所有体积都派生自该类。
  • Voxel Manager(体素管理器):负责管理体积的体素数据。

Rendering Engine

  • 简介:渲染引擎允许用户创建视口(Viewports),将这些视口与屏幕上的 HTML 元素相关联,并使用离屏 WebGL 画布将数据渲染到这些元素上。它能够渲染多个视口,一般情况下无需创建多个引擎,但在多显示器设置等场景下可创建多个实例,每个实例使用单独的 WebGL 上下文来渲染对应显示器的视口。
  • 一般使用流程:
    • 实例化RenderingEngine
    • 视口创建setViewportsAPI。

Viewports

  • 视口可以被认为是:
    • 从特定角度观看图像的相机。
    • 用于显示该相机输出的画布。
    • 一组从图像数据到可视数据的转换(LUT、窗口级别、平移等)
      在这里插入图片描述
  • StackViewport
    • 适合渲染一堆图像,这些图像可能属于也可能不属于同一图像。
    • 堆栈可以包含各种形状、大小和方向的 2D 图像。
  • VolumeViewport
    • 适合渲染被视为一幅 3D 图像的体积数据。
    • 拥有 VolumeViewport 可通过设计实现多平面重组或重建 (MPR),您可以在其中从各种不同方向可视化体积,而无需增加性能成本。
    • 用于两个系列之间的图像融合。
  • VolumeViewport3D
    • 适用于体积数据的实际 3D 渲染。
    • 具有不同类型的预设,例如骨骼、软组织、肺等。

http://www.kler.cn/a/451315.html

相关文章:

  • iClient3D for Cesium在Vue中快速实现场景卷帘
  • 直流有刷电机多环控制(PID闭环死区和积分分离)
  • 【踩坑记录】C编程变量未初始化导致的程序异常
  • 信号仿真高级工程师面试题
  • 解释下什么是面向对象?面向对象和面向过程的区别?
  • Docker 技术系列之安装多版本Mysql5.6和Mysql5.7
  • ECharts散点图-气泡图,附视频讲解与代码下载
  • Pytorch文件夹结构
  • 2024 年12月英语六级CET6听力原文(Long Conersation和Passage)
  • Java期末复习JDBC|网课笔记+校课总结
  • 麒麟系统修改配置镜像源地址并安装openGL
  • WebAssembly与WebGL结合:高性能图形处理
  • Python知识分享第三十五天-Pandas分组聚合
  • Linux 静默安装weblogic及JDK安装
  • chrome主页被被篡改的修复方法
  • 安全见闻(2)
  • 命令手动更新 Navigator
  • C 数组:索引魔杖点化的数据星图阵列
  • Grafana服务监控与日志查询可视化
  • 【C++】B2066救援题目分析和解决讲解
  • 随手记录第十四话 -- 在 Spring Boot 3.2.3 中使用 springdoc-openapi-starter-webmvc-ui
  • 解决Ubuntu下无法装载 Windows D盘的问题
  • 爬虫学习案例8
  • 【开源】一款基于SpringBoot的智慧小区物业管理系统
  • 华为堆叠的多主检测
  • Python数据分析可视化之词云图