跳转到内容

MINC/工具/N3

来自维基教科书,开放世界中的开放书籍

N3 包实现了用于校正 MRI 数据中强度不均匀性的非参数方法。

MRI 中经常看到的一种伪影是信号强度在图像中平滑变化。它被称为 RF 不均匀性、阴影伪影或 B0 强度不均匀性,通常归因于诸如射频 (RF) 场均匀性差、场梯度切换驱动的涡流以及视野内外的患者解剖结构等因素。

nu_correct 实施了一种方法来校正 MR 数据中的强度不均匀性,该方法无需监督即可实现高性能。通过对数据做出相对较少的假设,该方法可以在自动化数据分析的早期阶段应用,在获得组织强度或几何模型之前。该方法被称为非参数非均匀强度归一化 (N3),它独立于脉冲序列,并且对可能违反模型假设的病理数据不敏感。

为了消除场估计对解剖结构的依赖,使用迭代方法来估计乘法偏差场和真实组织强度的分布。使用 N3 对 MR 数据进行预处理已被证明可以显着提高解剖分析技术的准确性,例如组织分类、配准和皮层表面提取。

N3 包的内容

[编辑 | 编辑源代码]

N3 包中包含许多脚本和工具。您将使用的主要脚本是 nu_correct。每个脚本或可执行文件都有自己的帮助页面,可以通过以下方式访问

   nu_correct -help 

nu_correct 使用了许多其他二进制文件和脚本,这些脚本本身也很有用。它们的功能总结如下

 nu_correct     estimates and removes intensity non-uniformity from a volume.
 
 nu_estimate    estimates the intensity non-uniformity in a volume, 
                storing the result in a compact format referred to as an .imp file.
 
 nu_evaluate    corrects the intensity non-uniformity in a volume using the given .imp file.
 
 imp2field      expands an .imp file into a MINC volume representation of the correction field.
 
 field2imp      converts a MINC volume representation of a correction field into an .imp file.
 
 spline_smooth  smooths a volume using tensor cubic B splines or thin plate splines.

N3 的功能和使用方法

[编辑 | 编辑源代码]

仅通过查看图像而没有经过精心选择的颜色图的帮助,很难检测到 B0 不均匀性。在我们的测试用例中,我们将从来自 1.5T 西门子扫描仪的简单 T1 MPRAGE 图像开始。

上面的图像和此处的所有图像都是使用类似于下面的方式使用 mincpik 创建的。

  mincpik -scale 2 original.mnc -slice 150 -image_range 10 80 original.png

请注意,如果您不仔细查看图像下部白质的强度,很难在图像中选择不均匀性。为了校正此图像,我们使用默认参数运行 nu_correct。

  nu_correct original.mnc out.mnc

这将产生两个输出文件

  out.mnc - the corrected minc file
  
  out.imp - the intensity correction field

现在,我们可以查看校正后的文件 (out.mnc)

由于很难选择原始版本和校正版本之间的差异,我们可以创建一个场图像来可视化差异。

  imp2field -like out.mnc out.imp field.mnc

然后使用光谱颜色图生成图像

  mincpik -scale 2 field.mnc -slice 150 -lookup -spectral field.png

然后为了完整起见,这里使用光谱颜色图显示了原始图像和校正图像,以更好地可视化变化。请注意,在第二个(校正后的)图像中,白质的强度更加均匀(红色部分)。

关于 MNI N3 的常见问题解答

[编辑 | 编辑源代码]

如何将原始数据转换为 N3 使用的格式?

N3 使用 MINC 文件格式的数据。minc 包提供了两个程序 rawtominc 和 minctoraw,分别用于将原始数据转换为 minc 格式和从 minc 格式转换。使用这些程序的示例如下。假设数据是包含 24 个 256x256 切片的无符号短整型。如果此数据来自生成 12 位数据的 MRI 扫描仪,并且其字节序与运行 rawtominc 的机器不同,则可以按如下方式进行转换

  dd conv=swab if=mydata.raw | rawtominc -transverse -short -unsigned \
     -xstep -1 -ystep -1 -zstep 5.5 -mri -origin 0 0 0 \
     -range 0 4095 -real_range 0 4095 -clobber mydata.mnc 24 256 256 

并将数据转换回原始格式,如下所示

   minctoraw -range 0 1800 -normalize somedata.mnc | dd conv=swab of=somedata.raw 

当我指定掩码体积时,N3 产生错误消息。怎么了?

N3 的掩码区域定义为任何大于零的体素。但是,程序 extracttag 将掩码重新采样到工作分辨率,它有一些特殊之处,会导致错误。问题在于 extracttag 对数据集的真实范围很挑剔。在 minc 格式中,原始二进制数据(称为体素值)与其作为实数的解释(称为实值)之间的映射是任意选择的。

默认情况下,rawtominc 将映射设置为将体素值的整个范围映射到范围 [0, 1]。可以通过给出 -range 和 -real_range 选项来覆盖此设置。例如,对于 12 位 MR 数据,可以选择 -range 0 4095 -real_range 0 4095。无论如何,我不完全清楚 extracttag 期望什么,也不期望什么。但是,我发现以下命令

   mincmath -gt -const 0 old_mask.mnc new_mask.mnc 

解决了问题。

顺便说一下,关于真实范围和体素范围,请记住,N3 将小于 1 的值视为背景的一部分。因此,使用 rawtominc 创建的数据集(没有范围规范)将产生一个体积,该体积在 N3 的眼中是空的。

N3 可以用于单切片数据吗?

是的,它可以很好地用于单切片数据。但是,请注意,1.02 版中的一个错误可能会导致仅包含几个切片的体积出现不规则结果。此问题已在 1.04 版中修复。

我可以将 N3 用于表面线圈数据吗?

是的,但是默认设置并非最佳。由于表面线圈数据中的非均匀性非常严重,N3 通常会在校正完成之前达到其迭代限制。尝试使用 nu_correct 运行该程序,并添加选项 -iterations 150。如果这没有帮助,请尝试减少停止阈值,方法是添加选项 -stop 0.0001。

为什么我第二次运行 N3 时会得到不同的结果?

对于非均匀性特别严重的体积,N3 会在算法收敛之前达到其迭代限制。在这些情况下,第二次运行算法应该可以改进结果。但是,使用 -iterations 和 -stop 选项调整停止条件更加直接,分别设置最大迭代次数和场估计的最小变化。例如,尝试选项 '-iteration 150'。

参考文献

[编辑 | 编辑源代码]
  1. J. G. Sled、A. P. Zijdenbos 和 A. C. Evans,``一种用于自动校正 MRI 数据中强度不均匀性的非参数方法, IEEE 医学影像学报,第 17 卷,第 87-97 页,1998 年 2 月。
  2. J. G. Sled、A. P. Zijdenbos 和 A. C. Evans,``用于 MRI 的回顾性强度不均匀性校正方法的比较, 在医学图像信息处理中,第 459-464 页,1997 年。
  3. J. G. Sled,``一种用于自动校正 MRI 数据中强度不均匀性的非参数方法, 硕士学位论文,麦吉尔大学,蒙特利尔,QC,1997 年 5 月。

更多信息和问题

[编辑 | 编辑源代码]

使用 minc-users 邮件列表

华夏公益教科书