当前位置:   article > 正文

3D Slicer:从入门到精通(二)——入门指南_3dslicer

3dslicer

3D Slicer:从入门到精通(二)——入门指南



前言

本篇文章包含开始使用3D Slicer所需的信息,包括如何安装和使用基本功能,以及在哪里找到更多信息。


一、系统要求

3D Slicer可以在过去5年内发布的任何Windows、Mac或Linux计算机上运行。旧计算机可能也能工作(主要取决于图形能力)。

Slicer还可以在虚拟机和docker容器上运行。例如,通过Binder服务(无需安装,应用程序可以在任何网络浏览器中运行)免费提供3D Slicer + Jupyter notebook。

二、操作系统版本

  • Windows:Windows 10或11,安装了所有推荐更新。Windows 10版本1903(2019年5月更新)或更高版本是支持文件名和文本中的国际字符(UTF-8)所必需的。微软不再支持Windows 8.1和Windows 7,Slicer没有在这些旧操作系统版本上进行测试,但可能仍能工作。
  • macOS:macOS Big Sur(11)或更高版本(包括基于Intel和ARM的系统)。推荐使用最新的公共发布版本。
  • Linux:Ubuntu 18.04或更高版本
  • CentOS 7或更高版本。推荐使用最新的LTS(长期支持)版本。

三、推荐的硬件配置

  • 内存:超过4GB(推荐8GB或更多)。一般规则是,拥有的内存是您加载的数据量的10倍。
  • 显示:最小分辨率为1024x768(推荐1280x1024或更高)。
  • 图形:推荐使用专用图形硬件(独立GPU)内存以实现快速体积渲染。GPU:图形必须至少支持OpenGL 3.2。集成显卡足以满足基本可视化需求。推荐使用独立显卡(如NVidia GPU)进行交互式3D体积渲染和复杂场景的快速渲染。GPU纹理内存(VRAM)应大于您的最大数据集(例如,处理2GB数据,获取VRAM > 4GB)并检查您的图像是否适合GPU硬件的最大纹理尺寸。除了渲染,大多数计算都在CPU上执行,因此拥有更快的GPU通常不会影响应用程序的总体速度。
  • 3D Slicer中的一些计算是多线程的,将从多核、多CPU配置中受益。
  • 接口设备:推荐使用带有滚轮的三键鼠标。支持笔、多点触摸屏、触控板和图形平板。支持所有与OpenVR兼容的虚拟现实头显进行虚拟现实显示。
  • 网络连接,用于访问扩展、Python包、在线文档、示例数据集和教程。

四、安装和下载

点击此处下载Slicer。下载后,按照以下说明完成安装:
在这里插入图片描述

  • 3D Slicer的“预览版本”每天更新一次(过程从ET时间晚上11点开始,需要几个小时完成),代表了包括新功能和修复在内的最新开发。
  • “稳定版本”通常每年更新几次,并且经过了更严格的测试。
  • Slicer在所有平台上通常都很简单安装。可以在同一个用户账户上安装应用程序的多个版本,它们不会互相干扰。如果您遇到神秘的安装问题,您可以尝试删除应用程序设置文件。
  • 只有64位的Slicer安装程序可供下载。如果需要在32位操作系统上运行Slicer,开发者可以尝试自行构建32位版本。但是,需要仔细考虑这一点,因为许多临床研究任务,如处理大型CT或MR体积数据集,需要的内存超出32位程序可以容纳的范围。
  • Windows
    运行安装程序。
    当前限制:安装路径必须只包含英文(ASCII可打印)字符,否则某些Python包可能无法正确加载(更多详情见此问题)。从Windows开始菜单运行Slicer。使用Windows设置中的“应用程序和功能”删除应用程序。

  • Mac
    打开安装包(.dmg文件)。
    将Slicer应用程序(Slicer.app)拖到您的应用程序文件夹(或您选择的其他位置)。
    因为.dmg文件的内容被打开为只读卷,您不能在只读卷中安装扩展或Python包,所以这一步是必要的。
    删除Slicer.app文件夹以卸载。
    安装预览版本的注意事项:当前,预览版包未签名。因此,首次启动应用程序时会显示以下消息:“Slicer…因为它来自未识别的开发者,无法打开”。要解决此错误,请在Finder中找到应用程序,右键(两指点击)并点击打开。当显示无法打开应用程序时,继续点击取消。再次右键并说打开(是的,您需要重复之前的操作 - 结果会与第一次不同)。点击打开(或无论如何打开)按钮启动应用程序。更多解释和替代技巧见此。

  • 使用Homebrew安装
    使用Homebrew包管理器可以通过单个终端命令安装Slicer:

    brew install --cask slicer # 安装
    brew upgrade slicer # 升级
    brew uninstall slicer # 卸载
    
    • 1
    • 2
    • 3
  • Linux
    打开tar.gz存档并将目录复制到您选择的位置。
    根据Linux发行版和版本,可能需要安装额外的包,如下面的小节所述。
    运行Slicer可执行文件。
    删除目录以卸载。
    注意:
    Slicer预计将在大多数桌面和服务器Linux发行版上工作。系统至少需要提供GLIBC 2.17和GLIBCCC 3.4.19。更多详情,请阅读此处。
    获取包含非ASCII字符的命令行参数和进程输出需要系统使用UTF-8区域设置。如果系统使用不同的区域设置,则在启动应用程序之前使用export LANG="C.UTF-8"命令切换到可接受的区域设置。

五、如何学习Slicer?

快速开始

您可以尝试通过加载数据集并探索您能做什么来了解应用程序的工作原理。

加载数据

打开3D Slicer并使用欢迎面板加载您自己的数据或下载示例数据进行探索。如果您没有自己的数据,可以用一些测试数据来摸索slicer 的功能。
在这里插入图片描述

查看数据

数据模块的主题层次结构标签显示场景中的所有数据集。点击“眼睛”图标在所有视图中显示/隐藏项目。
在这里插入图片描述

可以通过点击查看器左上角的图钉自定义视图(显示方向标记、标尺、改变方向、透明度)。在切片查看器中,水平条可用于滚动切片或选择切片。

处理数据

3D Slicer基于模块化架构构建。选择一个模块来处理或分析您的数据。最重要的模块包括以下内容(模块部分提供了完整列表):
在这里插入图片描述

  • 欢迎:3D Slicer启动时的默认模块。面板提供加载数据和自定义3D Slicer的选项。这些选项下方是下拉框,包含使用3D Slicer的基本信息。
  • 数据:充当中央数据组织中心。列出当前场景中的所有数据,并允许执行基本操作,如搜索、重命名、删除和移动。
  • DICOM:导入和导出DICOM对象,如图像、分割、结构集、放射治疗对象等。
  • 体积:用于更改各种体积类型的外观。
  • 体积渲染:提供3D图像数据的交互式可视化。
  • 分割:编辑显示属性和导入/导出分割。
  • 分割编辑器:使用各种手动、半自动和自动工具分割3D体积。
  • 标记:允许用户在查看器中创建和编辑与场景相关的标记。
  • 模型:加载和调整模型的显示参数。允许用户更改和组织3D表面模型的外观。
  • 变换:该模块用于创建和编辑变换矩阵。您可以通过将节点从可变换列表移动到已变换列表或通过在数据模块中拖动节点到变换节点下来建立这些关系。

保存数据

使用文件菜单 -> 保存数据可以一次保存场景中的所有数据,或者可以从数据模块中右键单击并选择导出到文件… 或导出到DICOM… 来导出选定的数据集。数据加载和保存部分描述了详细信息。

扩展

3D Slicer支持称为扩展的插件。扩展可以视为捆绑在一起的一个或多个Slicer模块的交付包。安装扩展后,相关模块将作为内置模块呈现给用户。可以从扩展管理器下载扩展,以选择性地安装对最终用户有用的功能。

有关下载扩展的详细信息,请参阅扩展管理器文档。点击此处查看全部扩展列表。页面上的链接将提供每个扩展的文档。

专业术语表

医学和生物医学图像计算以及临床图像的各个领域使用的术语并不总是一致的。本节定义了在3D
Slicer中常用的术语,特别是那些在其他上下文中可能具有不同含义的术语。

  • 边界:沿3轴描述空间对象的边界框。在VTK中由6个浮点值定义:X_min, X_max, Y_min, Y_max, Z_min, Z_max。
    亮度/对比度:指定体素值到显示像素亮度的线性映射。亮度是线性偏移,对比度是乘数。在医学成像中,这种线性映射更常用窗口/层次值指定。
  • 单元:网格的简单拓扑元素,如线、多边形、四面体等。
  • 颜色图例(或颜色条、标量条):覆盖在切片或3D视图上的小部件,显示颜色图例,指示颜色的含义。
  • 坐标系(或坐标框架、参考框架、空间):由原点位置、轴方向和距离单位指定。3D Slicer中的所有坐标系都是右手系。
  • 扩展(或Slicer扩展):不与核心应用程序捆绑在一起但可以使用扩展管理器下载和安装的一组模块的集合。
  • 扩展管理器:Slicer的软件组成部分,允许直接从应用程序在扩展目录(也称为Slicer应用商店)中浏览、安装、卸载扩展。
  • 扩展索引:包含每个扩展描述的存储库,扩展目录是从中构建的。
  • 范围:沿3轴的整数坐标范围。在VTK中由6个值定义,对于IJK轴:I_min, I_max, J_min, J_max, K_min, K_max。最小值和最大值都包括在内,因此数组的大小是(I_max - I_min + 1)x(J_max - J_min + 1)x(K_max - K_min + 1)。
  • 基准点:代表3D空间中的一个点。这个术语来源于图像引导手术,其中“基准标记”用于标记点位置。
  • 帧:时间序列中的一个时间点。为避免歧义,这个术语不用来指体积的一个切片。
  • 几何:指定3D空间中对象的位置和形状。关于图像几何的定义,请参见“体积”术语。
  • 图像强度:通常指体素的值。根据选择的窗口/层次和颜色查找表,从此值计算显示像素的亮度和颜色。
  • IJK:体素坐标系统轴。整数坐标值对应于体素中心位置。IJK值经常用作坐标值来指定3D数组中的元素。根据VTK约定,I索引列,J索引行,K索引切片。注意numpy使用相反的排序约定,其中a[K][J][I]。有时这种内存布局被描述为I是最快移动索引,K是最慢移动。
  • ITK:Insight Toolkit。Slicer用于大多数图像处理操作的软件库。
  • 标签图(或标签图卷,标签图卷节点):具有离散(整数)体素值的体积节点。通常每个值对应于特定的结构或区域。这允许在单个3D数组中紧凑地表示非重叠区域。大多数软件使用单个标签图存储图像分割,但Slicer使用专用的分割节点,它可以包含多个表示(多个标签图以允许存储重叠段;闭合表面表示以快速进行3D可视化等)。
  • LPS:左-后-上解剖坐标系。医学图像计算中最常用的坐标系。Slicer在磁盘上以LPS坐标系存储所有数据(并在写入或从磁盘读取时转换为/从RAS转换)。
  • 标记:用户可以在查看器中放置的简单几何对象和测量。可以使用标记模块创建此类对象。有几种类型,如点列表、线、曲线、平面、ROI。
  • 源体积:此体积的体素值在分割过程中由那些依赖于底层体积强度的效果使用。
  • MRML:Medical Reality Markup Language:存储、可视化和处理可能在医学应用中使用的信息对象的软件库。该库设计为在各种软件应用程序中可重用,但3D Slicer是已知使用它的唯一主要应用程序。
  • 模型(或模型节点):存储表面网格(由三角形、多边形或其他2D单元组成)或体积网格(由四面体、楔形或其他3D单元组成)的MRML节点
  • 模块(或Slicer模块):Slicer模块是由图形用户界面(当模块被选中时在模块面板中显示)、逻辑(实现对MRML节点操作的算法)组成的软件组件,并可能提供新的MRML节点类型、显示管理器(负责在视图中显示这些节点)、输入/输出插件(负责在文件中加载/保存MRML节点)以及各种其他插件。模块通常是独立的,仅通过修改MRML节点相互通信,但有时一个模块使用其他模块提供的功能通过调用其逻辑中的方法。
  • 节点(或MRML节点):场景中的一个数据对象。节点可以代表数据(如图像或网格),描述其显示方式(颜色、不透明度等)、磁盘上的存储方式、对它们应用的空间变换等。有一个C++类层次结构来定义节点的共同行为,如可磁盘存储的属性或几何变换的属性。这个类层次结构的结构可以在代码或API文档中检查。
  • 方向标记:箭头、盒子或人形标记,用于在切片视图和3D视图中显示轴方向。
  • RAS:右-前-上解剖坐标系。Slicer内部使用的坐标系。它可以通过反转前两个轴的方向转换为/从LPS坐标系。
  • 参考:没有具体含义,但通常指操作的次要输入(数据对象、坐标框架、几何等)。
  • 兴趣区域(ROI):指定3D中的盒状区域。可用于裁剪体积、剪裁模型等。
  • 配准:在空间中对齐对象的过程。配准的结果是一个变换,它将“移动”对象变换到“固定”对象。
  • 分辨率:体积的体素大小,通常以mm/像素指定。它在用户界面中很少使用,因为其含义略有误导:高分辨率值意味着大间距,这意味着粗糙(低)图像分辨率。
  • 标尺:可能指:1. 视图标尺:显示为查看器中的覆盖线,用作大小参考。2. 标记线:距离测量工具。
  • 标量组件:向量的一个元素。标量组件的数量意味着向量的长度。
  • 标量值:一个简单的数字。通常是浮点数。
  • 场景(或MRML场景):这是当前加载到应用程序中的所有数据以及有关如何显示或使用这些数据的附加信息所包含的数据结构。这个术语来源于计算机图形学。
  • 段:对应于分割中的单个结构。更多信息见图像分割部分。
  • 分割(也称为轮廓化、注释;兴趣区域、结构集、掩模):在图像中描绘3D结构的过程。分割也可以指分割过程的结果MRML节点。分割节点通常包含多个段(每个段对应一个3D结构)。分割节点不是标签图节点或模型节点,但它们可以存储多个表示(二进制标签图、闭合表面等)。更多信息见图像分割部分。
  • 切片:3D对象与平面的交集。
    切片视图注释:切片视图角落的文本,显示显示体积的名称和选定的DICOM标签
  • 间距:体积的体素大小,通常以mm/像素指定。
  • 变换(或变换):可以将任何3D对象从一个坐标系变换到另一个坐标系。最常见的类型是刚性变换,它可以改变对象的位置和方向。线性变换可以缩放、镜像、剪切对象。非线性变换可以任意扭曲3D空间。要在世界坐标系中显示体积,必须对体积进行重采样,因此需要从世界坐标系到体积的变换(称为重采样变换)。要将所有其他节点类型变换到世界坐标系,必须将所有点变换到世界坐标系(建模变换)。由于变换节点必须适用于任何节点,变换节点可以提供从父节点和到父节点的变换(存储一个并在运行时计算另一个)。
  • 体积(或体积节点、标量体积、图像):存储3D体素数组的MRML节点。数组的索引通常称为IJK。IJK坐标的范围称为范围。体积的几何由其原点(IJK=(0,0,0)点的位置)、间距(沿I、J、K轴的体素大小)、轴方向(I、J、K轴在参考坐标系中的方向)以及相对于参考框架指定。2D图像是单切片3D体积,其位置和方向在3D空间中指定。
  • 体素:3D体积的一个元素。它有一个长方体的形状。体素的坐标对应于其中心点的位置。体素的值可能是一个简单的标量值或向量。
  • VR:缩写,可以指体积渲染或虚拟现实。为避免歧义,通常建议使用完整术语(或在给定上下文中明确定义缩写的含义)。
  • VTK:Visualization Toolkit。Slicer用于数据表示和可视化的软件库。由于大多数Slicer类是从VTK类派生的,它们大量使用其他VTK类,Slicer采用了VTK的许多约定、样式和应用程序编程接口。
  • 窗口/层次(或窗口宽度/窗口层次):指定体素值到显示像素亮度的线性映射。窗口是映射到可显示强度范围的强度范围的大小。层次是映射到可显示强度范围中心的体素值。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/418793
推荐阅读
相关标签
  

闽ICP备14008679号