跳转到内容

MINC/教程/教程01

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

在本教程结束时,您应该熟练掌握基本 MINC 命令的使用,例如 mincresample、mincreshape 和 mincmath。

基本 MINC 命令

[编辑 | 编辑源代码]

您在 MINC 中所做的所有操作都基于 Unix 的思想,即用一系列可以以多种不同方式组合在一起的小程序来解决大型问题。虽然这不是最容易学习的系统,但如果您坚持并花时间学习每个命令的各种用法,您会发现它非常灵活。

一种方法是详尽地阅读所有命令的手册页。

  $ man mincinfo

当然,如果您只是开始使用 MINC,我不建议这样做,因为在这个阶段,您可能更适合通过示例学习。但是,随着您对命令越来越熟练,您会发现这非常有用,尽管很耗时。您也可以使用 -help 标志在命令行中快速查看每个基本命令的帮助信息摘要。

  $ mincinfo -help

这将提供特定命令将接受的所有选项的列表,以及对其用法的简要说明。您始终可以在手册页中找到更多详细信息。

虽然 MINC 程序是基于 Unix 哲学构建的,但由于使用 netCDF 作为底层库,管道不受支持,这与之不同。这意味着您无法使用管道将一系列 MINC 命令的输出连接在一起。相反,您必须始终将每个命令的结果输出到文件。因此,大多数命令都遵循以下约定

  $ mincxxx [options] <infile.mnc> <outfile.mnc>

在某些情况下,MINC 命令将接受多个输入文件,因此命令将如下所示

  $ mincxxx [options] <infile1.mnc> [<infile2.mnc> [...]] <outfile.mnc>

您可以使用 -help 选项确定命令遵循这两个最常见的变体中的哪一个。使用信息在帮助的末尾输出。

  $ mincmath -help

在这个阶段,您可能想知道 [] 和 <> 括号的意义,这种符号通常用于描述命令行程序的输入。[] 括号表示可选参数,<> 括号表示必填参数。


常用选项

[编辑 | 编辑源代码]

许多命令中都有许多通用选项。他们是

  -clobber

此选项适用于输出文件,如果输出文件已存在,并且您希望覆盖它,则应使用此选项。如果您没有使用此选项,并且输出文件已存在,则会打印错误消息,程序将退出,而不会执行任何操作。

  -verbose and -quiet

这些选项会增加或减少命令产生的输出量。它们不会影响命令的结果,只会影响回显到屏幕上的信息量。

  -double, -float, -int, -short, -byte

这些选项指定您期望当前命令输出的精度。MINC 的设计使您不必在任何阶段都关心数据的类型和范围。您的数据被定义为以实数(任何正数或负数)形式存在,并且内部会根据当前数据类型进行映射。

Real to Voxel Intensity Mapping

上图演示了如何将具有 0 到 2000 实数(用户可见)范围的图像映射到有符号字节数据类型中。当然,在此转换期间,数据将被离散化为 256 个精度点。因此,用户可以选择每个 MINC 命令的输出精度,如果他们在任何阶段都希望获得更高的输出精度,那么这是有道理的。如果未明确选择数据类型,MINC 工具将使用第一个输入文件的数据类型。

  -signed, -unsigned

指定是使用有符号整数类型还是无符号整数类型来存储数据。请注意,在大多数情况下,除非数据正在准备用于特定目的,否则用户不必指定这些选项,因为 MINC 文件将重新调整实数图像范围以适应无符号或有符号类型,而不会损失或增加性能或精度。当与 -double 或 -float 选项一起使用时,这两个选项没有效果。

  -copy_header, -nocopy_header

所有 MINC 文件都具有一个集成的标头,其中可以包含与文件关联的任何数量的元数据。这些选项指定是否将此元数据复制到输出文件。通常,默认情况下是将第一个输入文件的标头复制到输出文件。但是,在许多情况下,您可能不想这样做,例如,当您从一系列输入文件中创建合成图像(平均值)时。在这种情况下,您可能不希望第一个文件中的元数据信息(包括受试者的姓名、出生日期和其他详细信息)被复制到您的输出文件。

华夏公益教科书