3D Slicer:从入门到精通——数据模块之DICOM

DICOM


文章目录

  • DICOM
    • 概述
      • DICOM简介
      • Slicer DICOM数据库
      • DICOM插件
    • 如何操作
      • 创建DICOM数据库
      • 将DICOM文件读入场景
        • DICOM导入
        • DICOM加载
      • 从DICOM数据库中删除数据
      • 将数据从场景导出到DICOM数据库
      • 将数据从场景导出到DICOM文件
      • DICOM网络传输
        • DICOMweb网络传输
      • 查看DICOM元数据
    • 面板及其用途
      • 基本用法
    • 故障排除
      • 如何知道我拥有的文件是否使用DICOM格式存储?我如何入门?
      • 当我点击“将选择加载到Slicer”时,收到错误消息“无法将...加载为标量体积”
      • 我尝试导入DICOM文件目录,但浏览器中没有显示任何内容
      • 显示了内容,但不是我预期的
        • 我预期看到不同的图像
        • 图像在一个轴上被拉伸或压缩


概述

该模块允许导入、导出和网络传输DICOM数据。Slicer支持DICOM功能的常用子集,其特定功能由临床研究的需求驱动:从磁盘读取写入数据集,并通过DIMSE和DICOMweb网络协议进行网络传输——查询检索发送接收数据集。

DICOM简介

医学数字成像和通信(DICOM)是信息交换数字放射学的广泛使用标准。在大多数情况下,医院使用的成像设备(CT和MR扫描仪)将生成保存为DICOM对象的图像。

DICOM按以下层次结构组织数据

  • 患者 … 可以有1个或多个
    • 研究(单次成像检查) … 可以有1个或多个
      • 系列(单次图像采集,通常对应于单个图像体积) … 可以有1个或多个
        • 实例(通常,每个系列包含多个实例,每个实例对应图像的单个切片)

成像检查的结果是,成像设备生成DICOM文件,每个文件对应一个实例,并标记有信息以确定系列、研究和患者信息,从而将其放置在层次结构中的正确位置。

标准定义了各种DICOM对象。最常见的对象类型是存储CT和MR扫描仪生成的图像体积的对象。这些对象通常每个系列会有多个文件(实例)。图像处理任务通常涉及分析整个图像体积,通常对应于单个系列。

有关DICOM标准的更多信息:

  • DICOM主页:https://dicom.nema.org/
  • 维基百科上的DICOM:https://en.wikipedia.org/wiki/DICOM
  • 简洁的DICOM标签浏览器:https://dicom.innolitics.com
  • 一个有用的标签查找网站:http://dicomlookup.com/
  • 超链接版本的标准:https://web.archive.org/web/20180624030937/http://dabsoft.ch/dicom/

Slicer DICOM数据库

为了组织数据并允许更快的访问,Slicer保留了一个本地DICOM数据库,其中包含DICOM文件的副本(或链接),以及每个文件内容的基本信息。您可以在计算机上同时拥有多个数据库,并在它们之间切换,例如,如果它们包含不同研究项目的数据。每个数据库只是本地磁盘上的一个目录,其中有一些SQLite文件和子目录来存储图像数据。请勿手动修改这些目录的内容。DICOM数据可以通过文件导入或通过DICOM网络传输进入数据库。Slicer模块也可以使用计算结果填充DICOM数据库。

请注意,DICOM标准没有指定文件在磁盘上的组织方式,因此如果您从CDROM或其他方式从扫描仪传输DICOM数据,通常无法从文件或目录名称中看出内容。然而,一旦数据导入数据库,它将根据DICOM标准的患者/研究/系列层次结构进行组织。

DICOM插件

DICOM模块的主要功能是将采集数据组织映射到体积表示。即,DICOM文件通常描述图像捕获的属性,如CT采集期间表位置的序列,而Slicer在规则间隔的像素图像体积上操作。例如,如果在采集过程中表运动的速度不一致(这种情况在某些对比剂’螺栓追踪’扫描中可能发生),Slicer’s DICOM模块会警告用户采集几何不一致,用户在解释分析结果(如测量)时应谨慎。

这意味着Slicer通常会建议多种解释数据的方法(例如,将DICOM文件读取为扩散数据集或标量体积)。当通过检查文件可计算时,DICOM模块将默认选择最可能的解释选项。到目前为止,标准插件包括标量体积和扩散体积,而扩展可用于分割对象、RT数据和PET/CT数据。预计未来版本会有更多插件。长期目标是能够在DICOM数据对象中表示Slicer的大部分(如果不是全部)数据,因为标准会进化以支持它们。

如何操作

创建DICOM数据库

创建DICOM数据库是所有DICOM操作的前提。当第一次打开DICOM模块时,Slicer会自动创建一个新数据库。选择创建新数据库或打开先前创建的数据库。

您可以随时在DICOM模块面板/ DICOM数据库设置/ 数据库位置中打开其他位置的数据库。

将DICOM文件读入场景

由于DICOM文件通常位于多个文件夹中,它们可以互相引用,并且通常可以以不同的方式解释,因此将DICOM文件读入场景分为两个独立步骤:导入(索引文件以便在DICOM数据库浏览器中显示它们)和加载(在Slicer场景中显示选定的DICOM项)。

DICOM导入
  1. 确保安装了所有必需的Slicer扩展。Slicer核心包含用于导入图像的DICOM导入插件,但其他信息对象可能需要额外的扩展。例如,SlicerRT扩展需要用于导入/导出放射治疗信息对象(RT结构集、剂量、图像、计划)。定量报告扩展需要导入导出DICOM分割对象、结构化报告和参数图。 参见支持的数据格式部分中的完整列表。
  2. 转到DICOM模块
  3. 选择包含DICOM文件的文件夹
    • 选项A:将包含DICOM文件的文件夹拖放到Slicer应用程序窗口。
    • 选项B:单击DICOM浏览器左上角的“导入”按钮。选择包含DICOM文件的文件夹。
      • 导入按钮有一个下拉菜单,可以通过单击右侧的小向下箭头按钮显示。当前菜单中的唯一项是“将导入的文件复制到DICOM数据库”选项。启用此选项以将所有导入的DICOM文件从其原始位置复制到Slicer DICOM数据库。这在从可移动媒体(CD/DVD/USB驱动器或远程驱动器)加载数据时很有用,以便在媒体弹出后仍能加载数据集。如果禁用复制选项,则DICOM数据库中只会存储导入文件的路径(以及最常用的DICOM标签的值)。

:::{note}

将文件夹拖放到Slicer应用程序时,Slicer会显示一个弹出窗口,询问该怎么做——单击确定(“将目录加载到DICOM数据库中”)。导入完成后,转到DICOM模块。

:::

DICOM加载
  1. 转到DICOM模块。如果DICOM数据库窗口尚未显示,请单击“显示DICOM数据库”(显示患者、研究和系列列表)。
  2. 双击要加载的患者、研究或系列。
  3. 单击“显示DICOM数据库”按钮以在数据库浏览器(加载更多数据)和查看器(查看已加载到场景中的内容)之间切换

:::{admonition} 提示

选择的患者/研究/系列可以一次加载,首先选择要加载的项。Shift单击以选择范围,Ctrl单击以选择/取消选择单个项目。如果选择患者或研究列表中的项目,则默认情况下将加载属于该项目的所有系列。单击“加载”按钮加载选定的项目。

:::

高级数据加载:DICOM数据通常可以以不同的方式解释。如果应用程序加载的数据与预期不同,请选中“高级”复选框,单击“检查”按钮,选择底部列表中的所有项目(包含DICOM数据、读取器、警告列),然后单击“加载”。

从DICOM数据库中删除数据

通过右键单击患者、研究或系列,可以从DICOM数据库中删除条目。请注意,为避免意外数据丢失,如果仅将链接添加到数据库,则Slicer不会删除相应的图像数据文件。复制到DICOM数据库的DICOM文件将从数据库中删除。

将数据从场景导出到DICOM数据库

场景中的数据可以导出为DICOM格式,存储在DICOM数据库或导出为DICOM文件:

  1. 确保安装了所有必需的Slicer扩展。Slicer核心包含用于导出图像的DICOM导出插件,但其他信息对象可能需要额外的扩展。
    • SlicerRT扩展需要导入/导出放射治疗信息对象:RT结构集、RT剂量、RT图像、RT计划。
    • 定量报告扩展需要导入/导出DICOM分割对象、结构化报告和参数图。
    • 参见支持的数据格式页面中的完整列表。
  2. 转到数据模块或DICOM模块。
  3. 右键单击数据树中的数据节点,将其转换为DICOM格式。
  4. 在导出对话框的左下角选择导出类型。这是必要的,因为可能有几种DICOM信息对象可以存储相同类型的数据。例如,分割可以存储为DICOM分割对象(现代DICOM)或RT结构集(传统表示,主要用于放射治疗计划)。
    • “Slicer数据包”导出类型通过将场景MRB包封装在DICOM文件中,将整个场景写入DICOM格式。结果是DICOM次要捕获对象,可以存储在任何DICOM存档系统中。此次要捕获信息存储了场景的所有细节,但只有3D Slicer可以解释数据。
    • 导出类型:一旦用户选择了一个节点,DICOM插件会为它们可以导出的系列生成可导出项。结果列表出现在此部分中,按插件分组。置信度数是该插件单个系列的置信度数的平均值。
  5. 可选:编辑将用于导出数据集的DICOM标签。选择研究的元数据将自动填充到导出对话框中,您可以选择要导出的Slicer体积。
    • DICOM标签编辑器由多个表格组成。顶部是患者和研究的常用标签表,下面是各个系列的标签表。
    • 显示表格中的“标签”并不总是直接写入DICOM标签,它们只是供DICOM插件在导出的文件中填写DICOM标签。这提供了更大的灵活性,DICOM插件可以自动填充一些信息,插件可以在此列表中公开其他导出选项(例如压缩、命名约定)。
    • 保存修改的标签:选中此复选框以将新标签值持久保存到场景中。
    • 如何设置唯一标识符标签:
      • StudyInstanceUID标签指定新系列将添加到的患者和研究。如果值设置为空,则会创建一个新研究。建议在同一研究的系列中保持所有患者和研究值(PatientNamePatientIDStudyID等)相同。
      • SeriesInstanceUID标签标识图像系列。默认情况下,其值设置为空,这将导致创建新的UID,从而创建新的系列。在极少数情况下,用户可能希望指定UID,但UID不能是任何现有的UID,因为这会导致导出的图像切片混入另一个系列。因此,仅当UID不用于数据库中已有图像时才接受该UID。
      • FrameOfReferenceUID标签指定空间参考。如果两个图像具有相同的参考框架UID值,则意味着它们在空间上对齐。默认情况下,该值为空,这意味着创建一个新的参考框架UID,因此导出的图像不与任何其他图像相关联。如果一个图像在空间上注册到另一个图像,则建议从另一个图像复制参考框架UID值,因为在某些图像审查软件中,这可能是融合显示图像所必需的。
  6. 单击导出
    • 如果发生任何错误,会显示简短的消息。有关错误的更多详细信息,请参阅应用程序日志。

注意:

  • 要在不将DICOM文件添加到DICOM数据库的情况下创建DICOM文件,请选中“导出到文件夹”选项并选择输出文件夹。
  • 在临床情况下处理这些文件时应格外小心,因为非标准或不正确的DICOM文件可能会干扰临床操作。
  • 要在导出前手动准备DICOM患者和研究,请转到数据模块(主题层次标签),右键单击数据树中的空白区域并选择创建新主题。同样可以在患者下创建新研究。

这个工作流程也在一个2分钟的视频教程中解释。

将数据从场景导出到DICOM文件

存储在数据库中的DICOM数据可以通过右键单击患者/研究/系列列表并选择“导出到文件系统”导出为DICOM文件。

加载到场景中的数据节点可以通过右键单击数据模块中的项目,选择导出为DICOM,启用“导出到文件夹”选项,并指定输出文件夹,直接导出为文件系统中的DICOM文件。

DICOM网络传输

DICOM也是一种网络通信标准,规定了数据在系统之间传输的方式。Slicer提供以下功能:

  • DICOM监听器(C-STORE SCP):接收从远程计算机发送的任何数据并存储在Slicer DICOM数据库中
  • DICOM发送器(C-STORE SCU):从Slicer DICOM数据库中选择数据并将其发送到远程计算机。支持传统的DIMSE和新的DICOMweb协议。
  • 查询/检索(C-FIND SCU,C-FIND SCU):查询远程服务器上可用的图像列表并检索选定的数据。

注意: 要使用这些功能,您必须与您希望通信的其他DICOM节点的操作员协调。例如,您必须就网络端口和应用程序实体标题(AE Titles)等主题达成协议。请注意,并非所有设备都支持所有网络选项,因此配置可能具有挑战性且通常难以排除故障。

连接端口:端口104是标准的DICOM端口。所有低于1024的端口在类Unix系统(Linux和Mac)上需要root访问权限。因此,您可以使用sudo命令运行Slicer以便为DICOM监听器打开端口。或者,您可以使用其他端口,例如11112。您需要在连接的双方进行配置。一次只能有一个进程监听一个端口,因此如果有一个监听器在运行,第二个将无法启动。如果发生异常情况(崩溃),可能会保持端口打开,您需要杀死storescp辅助进程(或只需重新启动计算机)以释放端口。有关诊断信息,请查看错误日志。

DICOMweb网络传输

Slicer支持使用DICOMweb协议将DICOM项发送到远程服务器。在发送数据窗口中,在“目标地址”中设置完整的服务器URL并选择“DICOMweb”协议。

查看DICOM元数据

  1. 转到DICOM模块
  2. 右键单击要检查的DICOM数据库窗口中的项目
  3. 选择“查看DICOM元数据”

面板及其用途

基本用法

  • 导入DICOM文件:将选定文件夹中的所有DICOM文件(包括子文件夹)扫描并添加到Slicer DICOM数据库。如果“导入目录模式”设置为“复制”,则Slicer会将导入的文件复制到数据库文件夹。建议从可移动媒体(CD/DVD/USB驱动器)导入文件时复制数据,以便在媒体弹出后仍能加载数据集。否则,它们只会在其原始位置被引用。
  • 显示DICOM数据库:在DICOM浏览器和查看器(切片视图、3D视图等)之间切换
  • 患者列表:显示数据库中的患者。所选患者的研究列在研究列表中。可以选择多个患者。
  • 研究列表:显示当前选定患者的研究。可以选择多个研究。
  • 系列列表:显示所选研究的系列(图像、结构集、分割、注册对象等)列表。
  • 加载:单击此按钮将当前选定的可加载项加载到Slicer中。
  • 已加载数据:显示当前加载到场景中的所有内容,可以通过单击眼睛图标在查看器中显示

其他选项:

  • 搜索框:可以通过在这些字段中输入内容来过滤每个患者/研究/系列。
  • 右键菜单项在患者/研究/系列列表中:
    • **查看DICOM元数据:**查看选定系列文件头中存储的元数据
    • **删除:**从数据库中删除选定项。如果数据集已复制到DICOM数据库中,则DICOM文件也会被删除。
    • **导出到文件系统:**将选定项导出为DICOM文件到选定文件夹
    • **发送到DICOM服务器:**使用DIMSE(C-store SCP)或DICOMweb(STOW-RS)协议将选定项发送到远程DICOM服务器。

高级加载(允许使用非默认选项加载DICOM数据集):

  • **高级:**选中此复选框以显示高级加载选项
  • **插件选择器部分:**您可以选择允许哪些插件检查选定系列以进行加载。如果单击DICOM模块面板底部的“DICOM插件”可折叠按钮,则显示此部分。
  • **检查按钮:**在当前选定系列上运行每个DICOM插件,并在可加载项列表表中提供结果。
  • **可加载项列表:**显示所选插件对选定系列的所有可能解释。默认情况下,最有可能正确解释该系列的插件被选中。如果要以不同方式加载数据,可以覆盖默认设置。并非总是存在一对一的映射,从所选系列到可加载项列表。

DICOM模块设置:

  • DICOM网络传输:使用查询检索从远程服务器下载数据,设置通过C-store SCP接收数据
  • DICOM数据库设置:允许您在磁盘上选择一个位置作为Slicer’s DICOM文件数据库。应用程序管理此文件夹的内容(存储元数据和导入的DICOM文件的副本):请勿手动将任何数据复制到此文件夹中。
  • 其他设置可在菜单中找到:编辑 / 应用程序设置 / DICOM:
    • 通用DICOM设置:
      • 加载引用的系列将为您提供在打开分割时轻松加载源卷的选项。这也可以自动完成。
    • DICOMScalarVolumePlugin设置:
      • 您可以选择使用哪个后端库(当前为GDCM、DCMTK或GDCM与DCMTK后备,最后一个选项为默认选项)。这在某些数据不受任何一个库支持的情况下提供了选择。
      • 采集几何规则化选项支持创建非线性变换,以纠正采集中的缺失切片或机架倾斜等问题。规则化变换也可以硬化到体积。更多信息参见此处
      • 按时间自动加载子系列是将一些4D采集分解为单个体积的选项,但这是可选的,因为有些体积也按时间单位采集,不应拆分。

故障排除

如何知道我拥有的文件是否使用DICOM格式存储?我如何入门?

DICOM文件不需要特定的文件扩展名,可能很难轻松回答这个问题。然而,如果您有一个由临床扫描仪生成的数据集,它很可能是DICOM格式的。如果您怀疑您的数据可能是DICOM格式,最简单的方法可能是尝试将其加载为DICOM:

  1. 将包含数据的目录拖放到Slicer窗口。您将收到一个提示“选择用于您的数据的读取器?将目录加载到DICOM数据库中。”接受该选择。您将看到目录内容被索引时的进度更新。如果目录包含DICOM数据,并且导入成功,完成后您将看到成功导入了多少患者/研究/系列/实例项的消息。
  2. 导入完成后,您将看到DICOM浏览器窗口列出当前索引的所有患者/研究/系列。接下来,您可以从DICOM浏览器窗口中选择各个项目并加载它们。
  3. 一旦使用DICOM浏览器将数据加载到Slicer中,可以切换到“数据”模块以检查导入的内容。

当我点击“将选择加载到Slicer”时,收到错误消息“无法将…加载为标量体积”

加载失败的常见原因是由于不正确的匿名化导致DICOM文件损坏。患者姓名、患者ID和系列实例UID字段不应为空或缺失(匿名化器应将它们替换为其他有效字符串)。尝试加载原始的、未匿名化的序列和/或更改匿名化过程。

如果以上都没有帮助,请检查Slicer错误日志并在Slicer论坛上报告错误。如果您共享数据(例如,将其上传到Dropbox并在错误报告中添加链接),Slicer开发人员可以更快地重现和修复问题。

我尝试导入DICOM文件目录,但浏览器中没有显示任何内容

DICOM是一种复杂的数据表示方式,扫描仪和其他软件经常会生成“非标准”文件,这些文件声称是DICOM但实际上不符合规范。此外,规范本身有许多变体和特殊格式,Slicer无法理解。Slicer最常用于CT和MR DICOM对象,因此这些通常可以工作。

如果您在导入DICOM数据时遇到问题,请尝试以下步骤:

  • 确保您遵循了DICOM加载说明。
  • 我们不断改进应用程序(每天发布新的预览版本),因此您遇到的问题可能已在最近的版本中解决。尝试使用最新稳定版和最新夜间版的Slicer加载数据。
  • 确保Slicer临时文件夹可写。可以在菜单:编辑 / 应用程序设置 / 模块 / 临时目录中选择临时文件夹。
  • 尝试将数据和数据库目录移动到仅包含美国英语字符(ASCII)的路径,以避免可能的解析错误。不允许使用特殊的国际字符。
  • 确保数据库目录位于有足够可用空间的驱动器上(1GB可用空间应该足够)。如果空间不足,您可能会在“内部错误”弹出窗口中看到此错误消息:在事件中抛出异常:调用未初始化的ctkDICOMItem上的方法
  • 从本地存储(物理驱动器或直接连接到计算机的USB记忆棒)导入文件(不是网络驱动器、共享驱动器、云驱动器、Google驱动器、虚拟文件系统等)。
  • 确保文件名不太长(低于几十个字符),并且在Windows上的完整文件路径低于约200个字符
  • 要确认您的Slicer安装是否正确读取数据,请尝试加载其他数据,例如此匿名示例DICOM系列(CT扫描)
  • 尝试使用不同的DICOM读取器导入:在应用程序设置 / DICOM / DICOMScalarVolumePlugin / DICOM读取器方法中:从DCMTK切换到GDCM(或从GDCM切换到DCMTK),重新启动Slicer,然后再次尝试加载数据集。
  • 查看SlicerDcm2nii扩展是否会转换您的图像。您可以使用扩展管理器安装此模块。安装后,您将能够从Slicer使用Dcm2niixGUI模块。
  • 尝试DICOM修补程序模块。
  • 查看错误日志(菜单:查看 / 错误日志)中的信息。
  • 通过选择添加数据中的一个文件尝试加载数据。 注意:确保打开显示选项,然后关闭单文件选项,以便将选定的系列加载为一个体积。一般来说,不建议这样做,因为加载的数据可能不完整或失真,但在某些情况下,当正确的DICOM加载失败时,它可能有效。
  • 如果仍然无法加载数据,您可能需要找到一个将数据转换为Slicer可以读取的格式的工具。有时工具如FreeSurfer、FSL或MRIcron可以理解Slicer不原生处理的特殊格式。这些系统通常会导出Slicer可以读取的NIfTI文件。
  • 对于存档研究,您确定您的数据是DICOM格式,还是可能存储在DICOM之前的专有MR或CT格式中?如果是后者,您可能希望尝试到2016年随MRIcron分发的dcm2nii工具。更新版本的MRIcron包括dcm2niix,它更适合现代DICOM图像。然而,旧版dcm2nii支持GE、Philips、Siemens和Elscint的专有格式。
  • 如果以上都没有帮助,您可以通过在Slicer论坛上发布简短描述,描述您期望数据集包含的内容以及关于数据集的以下信息,向Slicer开发团队寻求帮助:
    • 如果DICOM文件不包含患者机密信息,您可以共享这些文件:将数据集上传到某处(Dropbox、OneDrive、Google drive,…)并发布下载链接。请注意不要意外泄露私人健康信息(患者姓名、出生日期、ID等)。如果您希望从DICOM文件中删除标识符,可以查看DicomCleaner、gdcmanon或RSNA临床试验处理器软件。
    • 如果无法共享DICOM文件,您可以共享DICOM元数据和应用程序日志。确保从文本中删除患者姓名、出生日期、ID和所有其他私人健康信息,将文件上传到某处(Dropbox、OneDrive、Google drive,…),并发布下载链接。
      • 获取DICOM元数据:右键单击DICOM浏览器中的系列,选择查看元数据,并单击复制元数据按钮。将复制的文本粘贴到任何文本编辑器中。
      • 获取DICOM加载的详细应用程序日志:为DICOM启用详细日志记录(菜单:编辑 / 应用程序设置 / DICOM / 详细日志记录),然后尝试加载系列(在DICOM浏览器中选择系列并单击“加载”按钮),并获取日志(菜单:帮助 / 报告错误 -> 将日志消息复制到剪贴板)。

显示了内容,但不是我预期的

我预期看到不同的图像

当您从DICOM加载研究时,它可能包含多个数据集,默认情况下Slicer可能不会显示您最感兴趣的数据集。转到数据模块/主题层次部分,单击“眼睛”图标显示/隐藏加载的数据集。显示体积后,您可能需要单击切片选择滑块左侧的小矩形图标(“调整切片查看器的视野…”)。

如果没有一个数据集是正确的,请按照“我尝试导入DICOM文件目录,但浏览器中没有显示任何内容”部分中描述的步骤进行操作。

图像在一个轴上被拉伸或压缩

一些非临床(工业或前临床)成像系统不会生成有效的DICOM数据集。例如,它们可能错误地假设切片厚度标签定义图像几何,而根据DICOM标准,图像切片位置必须用于确定图像几何。DICOM修补程序模块可以修复其中一些图像:从Slicer的DICOM数据库中删除图像文件,使用DICOM修补程序模块处理图像文件,然后将处理后的文件重新导入Slicer的DICOM数据库。如果图像仍然失真,请转到体积模块,打开体积信息部分,并调整图像间隔值。

扫描仪可能会生成具有不同图像切片间隔的图像体积。Slicer可以通过应用非线性变换在场景中表示此类图像。要启用此功能,请转到菜单:编辑 / 应用程序设置 / DICOM,并将采集几何规则化设置为应用规则化变换。切片视图、分割和许多其他功能直接在非线性变换体积上工作。对于某些其他功能,如体积渲染,您需要在体积上硬化变换:转到数据模块,在体积节点的行中,右键单击变换列,并选择硬化变换

请注意,如果Slicer显示关于非均匀切片间隔的警告,则可能是由于DICOM文件丢失或损坏。没有可靠的机制来区分由于减少患者剂量而未采集的切片(例如,为了减少患者剂量)或采集后丢失的切片。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/843458.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

R实验 参数估计

实验目的: 掌握矩法估计与极大似然估计的求法;了解估计量的优良性准则:无偏性、有效性、相合性(一致性);学会利用R软件完成一个正态总体均值和两个正态总体均值差的区间估计;学会利用R软件完成…

NiuCloud-Admin-SAAS:引领前端技术革新与SaaS应用快速开发的未来

一、引言 在数字化快速发展的今天,企业对于快速搭建、高效运营的SaaS(Software-as-a-Service)系统的需求日益增长。为满足这一需求,NiuCloud-Admin-SAAS作为一款快速开发SaaS通用管理系统后台框架,凭借其先进的技术栈…

基于Java实现震中附近风景区预警可视化分析实践

目录 前言 一、空间数据说明 1、表结构信息展示 2、空间范围查询 二、Java后台开发实现 1、模型层设计与实现 2、控制层设计与实现 三、Leaflet地图开发 1、地震震中位置展示 2、百公里风景区列表展示 3、风景区列表展示 4、附近风景区展示 四、总结 前言 地震这类…

链表mark

什么是链表,链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。…

[数智人文实战] 02.舆情分析之词云可视化、文本聚类和LDA主题模型文本挖掘

【数智人文与文本挖掘】知识星球建立且正式运营,欢迎新老博友和朋友加入,一起分享更多数智人文知识和交流进步。该星球计划每周至少分享7个资源或文章,包括数智人文、文本挖掘、人工智能、大数据分析和图书情报的技术文章、代码及资源。同时,欢迎进入星球的朋友咨询我图情和…

操作系统课程实验1-进程调度模拟实验

操作系统课程实验1-进程调度模拟实验 一、实验介绍 1.1 实验目的 本实验模拟在单处理机环境下的处理机调度,帮助理解进程调度的概念,深入了解进程控制块的功能,以及进程的创建、撤销和进程各个状态间的转换过程。 1.2 实验内容 进程调度算…

NDIS小端口驱动开发(一)

在四种NDIS相关的驱动中,微型端口驱动(也经常翻译为为小端口驱动)位于驱动栈的底部,一般将它理解为NIC设备的驱动程序: 有几种类型的微型端口驱动程序类型: 无连接微型端口驱动程序用于控制无连接网络媒体 ,如以太网的…

redis基本数据结构与应用

文章目录 概要String结构Hash结构List结构Set结构Zset结构bitmap位图类型geo地理位置类型其他常用命令 概要 redis常用的5种不同数据结构类型之间的映射如下: 结构类型结构存储的值结构的读写能力STRING可以是字符串、整数或者浮点数key-value形式;对整…

JMH304-剑侠情缘2网络版+2017纹饰端+翅膀+单机+外网整理+各种副本

资源介绍: 藏剑-太虚-梁山-杀手堂种树地宫师门纹饰装备长流云阳套等等———– 做登录器联系站长 资源截图: 下载地址

.NET周刊【5月第4期 2024-05-26】

国内文章 开源低代码框架 ReZero API 正式版本发布 ,界面操作直接生成API https://www.cnblogs.com/sunkaixuan/p/18201175 ReZero是一款.NET6的中间件,采用MIT许可证开源,目的是降低.NET Core开发的门槛。它提供界面操作生成API的功能&am…

《Ai学习笔记》自然语言处理 (Natural Language Processing):常见机器阅读理解模型(上)02

Glove 词向量: 在机器理解中的词的表示: 词袋(bow,bag of words) one-hot 词向量 word2vec glove 目的:将一个词转换成一个向量 Word2vec 是一种用于生成词向量的工具包,由Google在2013年开源推出…

大规模语言模型的书籍分享

在当今人工智能领域,大规模语言模型成为了研究和应用的热点之一。它们以其大规模的参数和强大的性能表现,推动着机器学习和深度学习技术的发展。对于GPT 系列大规模语言模型的发展历程,有两点令人印象深刻。 第一点是可拓展的训练架构与学习范…

《TCP/IP网络编程》(第十二章)I/O复用(1)

本章将讨论实现并发服务器的第二种办法,基于I/O复用的服务器端构建。 I/O复用它允许单个进程或线程同时处理多个输入/输出(I/O)操作,而无需为每个I/O操作创建一个独立的线程或进程。这种技术可以显著提高应用程序的效率和性能&…

前端学习--React部分

文章目录 前端学习--React部分前言1.React简介1.1React的特点1.2引入文件1.3JSX🍉JSX简介与使用🍉JSX语法规则 1.4模块与组件🍉模块🍉组件 1.5安装开发者工具 2.React面向组件编程2.1创建组件🍉函数式组件&#x1f349…

Elasticsearch 认证模拟题 - 1

1、题目 定义一个数据流,满足 data-stream_*_*,数据首先分布在 data_hot,5分钟后移动到 data_warm,3分钟后到 data_cold,再过 8 分钟删除。 1.1 考点 生命周期索引模板数据流 1.2 答案 # 修改生命周期策略修改时间…

【算法】位运算算法——只出现一次的数字Ⅱ

题解:只出现一次的数字Ⅱ(位运算算法) 目录 1.题目2.题解:3.代码示例4.总结 1.题目 题目链接:LINK 要求:时间复杂度:O(N),空间复杂度:O(1) 2.题解: 3.代码示例 class Solution {…

Java设计模式 _行为型模式_中介者模式

一、中介者模式 1、中介者模式 中介者模式(Mediator Pattern)是一种行为型模式。主要通过一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。 2、实现思路 (1)、定义实体…

【Linux】-Kafka集群安装部署[18]

简介 Apache Kafka是一款分布式的、去中心化的、高吞吐低延迟、订阅模式的消息队列系统。 同RabbitMQ一样,Kafka也是消息队列。不过RabbitMQ多用于后端系统,因其更加专注于消息的延迟和容错。 Kafka多用于大数据体系,因其更加专注于数据的…

K210 数字识别 笔记

一、烧写固件 连接k210开发板,点开烧录固件工具,选中固件,并下载 二、模型训练 网站:MaixHub 1、上传文件 2、开始标记数据 添加9个标签,命名为1~9,按键盘w开始标记,键盘D可以下一张图片&…

解密Prompt系列15. LLM Agent之数据库应用设计:DIN C3 SQL-Palm BIRD

上一章我们主要讲搜索引擎和LLM的应用设计,这一章我们来唠唠大模型和DB数据库之间的交互方案。有很多数据平台已经接入,可以先去玩玩再来看下面的实现方案,推荐 [sql translate]:简单,文本到SQL,SQL到文本…