文章目录
Registration
ants.registration(fixed, moving, type_of_transform=‘SyN’, initial_transform=None, outprefix=‘’, mask=None, moving_mask=None, mask_all_stages=False, grad_step=0.2, flow_sigma=3, total_sigma=0, aff_metric=‘mattes’, aff_sampling=32, aff_random_sampling_rate=0.2, syn_metric=‘mattes’, syn_sampling=32, reg_iterations=(40, 20, 0), aff_iterations=(2100, 1200, 1200, 10), aff_shrink_factors=(6, 4, 2, 1), aff_smoothing_sigmas=(3, 2, 1, 0), write_composite_transform=False, random_seed=None, verbose=False, multivariate_extras=None, restrict_transformation=None, smoothing_in_mm=False, singleprecision=True, **kwargs)
通过完整或简化的 ANTs 注册方法接口注册一对图像。
ANTsR 函数:antsRegistration
参数:
-
fixed (ANTsImage) – 我们将移动图像注册到的固定图像。
-
moving (ANTsImage) – 要映射到固定空间的移动图像。
-
type_of_transform (字符串) – 线性或非线性注册类型。默认情况下为互信息度量。有关更多信息,请参阅下面的注释。
-
initial_transform (字符串列表(可选)) – 要添加的转换。如果为 None,则计算平移以对齐图像质心,除非转换类型是仅可变形的(time-varying diffeomorphisms, SyNOnly, or antsRegistrationSyN*[so|bo])。要强制使用恒等变换进行初始化,请将其设置为“Identity”。
-
outprefix (字符串) – 输出将以此前缀命名。
-
mask (ANTsImage(可选)) – 固定图像空间中的注册度量掩码。
-
moving_mask (ANTsImage(可选)) – 移动图像空间中的注册度量掩码。
-
mask_all_stages(布尔值)- 如果为真,则将度量掩码应用于所有注册阶段,而不仅仅是最后阶段。
-
grad_step(标量)– 梯度步长(不适用于所有 tx)
-
flow_sigma(标量)– 更新场的平滑处理 每次迭代时,都会计算相似度度量和梯度。该梯度场也称为更新场,在与总场(即该迭代的总变换估计值)组合之前会进行平滑处理。每次迭代后,也可以平滑此总场。
-
total_sigma(标量)– 总场的平滑处理
-
aff_metric(字符串)– 仿射部分的度量(GC、mattes、均方)
-
aff_sampling(标量)– 互信息度量的箱数
-
aff_random_sampling_rate(标量)– 用于估计度量的点的分数。这会影响速度,但也会影响可重复性和/或准确性。
-
syn_metric(字符串)– syn 部分的度量(CC、mattes、meansquares、demons)
-
syn_sampling(标量)– syn 度量的 nbins 或 radius 参数
-
reg_iterations(python:整数的列表/元组)– syn 的迭代向量。我们将根据此向量的长度设置平滑和多分辨率参数。
-
aff_iterations(python:整数的列表/元组)– 低维(平移、刚性、仿射)配准的迭代向量。
-
aff_shrink_factors(python:整数的列表/元组)– 低维(平移、刚性、仿射)配准的多分辨率收缩因子向量。
-
aff_smoothing_sigmas(python:整数的列表/元组)– 低维(平移、刚性、仿射)配准的多分辨率平滑因子向量。
-
random_seed (python:integer) – 随机种子以提高可重复性。请注意,如果您想要完美的可重复性,ITK_GLOBAL_DEFAULT_NUMBER_OF_THREADS 的数量应该是 1。
-
write_composite_transform (boolean) – 布尔值,指定是否应将复合变换(及其逆变换,如果存在)写入 hdf5 复合文件。默认情况下为 false,因此只有每个阶段的变换才会写入文件。
-
verbose (boolean) – 请求详细输出(对调试有用)
-
multivariate_extras(多指标配准的附加指标)–
附加图像和指标的列表,这些图像和指标将触发可变形阶段配准过程中使用多个指标。每个多变量指标需要 5 个条目:指标名称、固定、移动、权重、采样参数。列表列表应为以下形式 ( ( “nameOfMetric2”, img, img, weight, metricParam ) )。另一个示例是 ( ( “MeanSquares”, f2, m2, 0.5, 0), ( “CC”, f2, m2, 0.5, 2 ) )。这仅与SyNOnly 或 antsRegistrationSyN* 转换兼容。
-
restrict_transformation(此选项允许用户限制)– 基于每个组件的位移场、平移、刚性或仿射变换的优化。例如,如果想要将 3D 体积的变形或旋转限制在前两个维度,可以通过为 3D 变形场指定权重向量‘(1,1,0)’或为刚性变换指定权重向量‘(1,1,0,1,1,0)’来实现。限制目前仅在没有先前的变换时才有效。
-
smoothing_in_mm(布尔值;目前仅影响低维配准)–
-
singleprecision(布尔值)– 如果为 True,则使用 float32 进行计算。这对于减少大型数据集的内存使用量很有用,但代价是精度。
-
kwargs(关键字参数)– 额外参数
返回:
warpedmovout:扭曲到固定图像空间的移动图像。warpedfixout:扭曲到移动图像空间的固定图像。fwdtransforms:从移动图像转换为固定图像。invtransforms:从固定图像转换为移动图像。
返回类型:
包含以下键/值对的字典
注释
type_of_transform 可以是以下之一:
-
“Translation”:平移变换。
-
“Rigid”:刚性变换:仅旋转和平移。
-
“Similarity”:相似性变换:缩放、旋转和平移。
-
“QuickRigid”:刚性变换:仅旋转和平移。可能对快速可视化修复有用。’
-
“DenseRigid”:刚性变换:仅旋转和平移。在度量估计期间采用密集采样。’
-
“BOLDRigid”:刚性变换:BOLD 到 BOLD 受试者内配准的典型参数。’
-
“Affine”:仿射变换:刚性 + 缩放。
-
“AffineFast”:Affine 的快速版本。
-
“BOLDAffine”:仿射变换:BOLD 到 BOLD 受试者内配准的典型参数。’
-
“TRSAA”:平移、刚性、相似性、仿射(两次)。如果使用此选项,请设置regIterations。这将在您想要真正高质量的仿射映射(可能带有掩码)的情况下使用。
-
“Elastic”:弹性变形:仿射 + 可变形。
-
“ElasticSyN”:对称规范化:仿射 + 可变形变换,以互信息作为优化指标和弹性正则化。
-
“SyN”:对称规范化:仿射 + 可变形变换,以互信息作为优化指标。
-
“SyNRA”:对称规范化:刚性 + 仿射 + 可变形变换,以互信息作为优化指标。
-
“SyNOnly”:没有刚性或仿射阶段的对称规范化。使用互信息作为优化指标。
-
“SyNCC”:SyN,但以互相关作为指标。
-
“SyNabp”:SyN 针对 abpBrainExtraction 进行了优化。
-
“SyNBold”:SyN,但针对 BOLD 和 T1 图像之间的配准进行了优化。
-
“SyNBoldAff”:SyN,但针对 BOLD和 T1 图像之间的配准进行了优化,并增加了仿射步骤。
-
“SyNAggro”:SyN,但配准更激进(精细尺度匹配和更多变形)。比 SyN 花费更多时间。
-
“TV[n]”:时变微分同胚,其中“n”表示速度场离散化中的时间点数。如果需要,应在单独调用 ants.registration 时计算初始变换。
-
“TVMSQ”:具有均方度量的时变微分同胚
-
“TVMSQC”:具有均方度量的时变微分同胚,适用于非常大的变形
-
“antsRegistrationSyN[x]”:在 ANTs 中重新创建 antsRegistrationSyN.sh 脚本
其中“x”是可用的变换之一:
t:平移(1 阶段)r:刚性(1 阶段)a:刚性 + 仿射(2 阶段)s:刚性 + 仿射 + 可变形 syn(3 阶段)sr:刚性 + 可变形 syn(2 阶段)so:仅可变形 syn(1 阶段)b:刚性 + 仿射 + 可变形 b 样条 syn(3 阶段)br:刚性 + 可变形 b 样条 syn(2 阶段)bo:仅可变形 b 样条 syn(1 阶段) -
“antsRegistrationSyNQuick[x]”:在 ANTs 中重新创建 antsRegistrationSyNQuick.sh 脚本。x 选项同上。
-
“antsRegistrationSyNRepro[x]”:可重现注册。x 选项同上。
-
“antsRegistrationSyNQuickRepro[x]”:快速可重现注册。x 选项同上。
ANTS and antsRegistration
原文地址:https://github.com/ANTsX/ANTs/wiki/ANTS-and-antsRegistration
我们经常被问到,在调用 antsRegistration 时,默认的 ANTS 参数是什么样子的。这两个程序之间没有一一对应的关系,但可以以类似的方式设置一些选项。然而,即使这两个程序使用理论上相似的算法,也无法实现等效性,因为多年来,ANTs 和 ITK 方面的底层实现都在不断发展。例如,高斯平滑在 antsRegistration 中的计算方式与在 ANTS 中的不同。
最常见的问题是如何以类似于 ANTS 默认行为的方式设置 antsRegistration 中的收缩因子 -f 和平滑 -s。
示例调用:
ANTS -m MI[ fixed.nii.gz , moving.nii.gz , 1, 32] -t SyN[0.25]
-r Gauss[3,0] -i 200x100x70x20 -o output
固定和移动的是 T1 图像,具有 1x1x1 毫米体素,尺寸为 160x192x256。在可变形部分,我们有四个级别。
对于 antsRegistration,这应该大致相同:-f 6x4x2x1 -s 2x1x0.5x0mm。
Shrink factors
基本思想:下采样图像间距 =(输入图像间距)* 收缩因子
downsampled image spacing = (input image spacing) * shrink factor
ANTS 中的收缩因子在每个级别上以 2 的幂递增的方式设置,但会受到图像尺寸的限制。如果图像在所有维度上都足够大,则在 4 个级别下收缩因子将为 8x4x2x1。但是,每个维度上的收缩都受到该维度上的体素数量的限制,因此下采样图像的每个维度上必须至少有 32 个体素。因此,160x192x256 1x1x1 毫米图像将在第一级下采样为 5x6x8 毫米间距,在第二级下采样为 4x4x4 毫米,在第三级下采样为 2x2x2 毫米,在第四级下采样为 1x1x1 毫米。
对于各向异性体素,收缩基于最小体素尺寸。下采样图像是各向同性的,受图像大小的收缩上限限制。因此,如果 160x192x256 图像的体素尺寸为 0.5x0.75x1,则第 4 级的下采样间距将为 2x2x2 毫米。
代码:
https://github.com/stnava/ANTs/blob/9bc1866a758c2c7b6da463566edc3cdaed65a829/ImageRegistration/itkANTSImageRegistrationOptimizer.h#L1071-L1089
Smoothing
根据公式,ANTS 中的平滑度最小
sigma = (outputSpacing / inputSpacing - 1.0) * 0.2
对于上述示例(160x192x256 体素,1x1x1 毫米间距),这相当于每个级别的平滑 sigma 为 0.8x1.0x1.4 毫米、0.6x0.6x0.6 毫米、0.2x0.2x0.2 毫米和 0x0x0 毫米。
代码:
https://github.com/stnava/ANTs/blob/9bc1866a758c2c7b6da463566edc3cdaed65a829/ImageRegistration/itkANTSImageRegistrationOptimizer.h#L712-L748
Affine registration
对 ANTS 的默认调用设置了以下参数:
–affine-metric-type MI
–MI-option 32x32000
–number-of-affine-iterations 10000x10000x10000
这将使用三个级别和 MI 度量进行初始仿射变换。antsRegistration 中的 MI 度量是 Mattes Mutual Information 的同义词,它是与 ANTS 中使用的 MI 实现不同的实现。
下采样和平滑参数与上面描述的可变形配准相同,因此对于典型的 1mm 脑图像,其值类似于 1-c [10000x10000x10000, 1e-4, 10] -f 4x2x1 -s 0.6x0.2x0mm。MI 箱的数量设置为 32,但与 antsRegistration 不同,指定了固定数量的采样点(32000)。在 antsRegistration 中,我们设置了采样百分比,而不是固定数量的样本。例如,
-m MI[fixed.nii.gz, moving.nii.gz, 1,32, Regular, 0.1]
在由固定图像间距定义的规则网格上采样点,这样 10% 的体素包含一个采样点。对每个点应用一个小的随机扰动以减少混叠。
随机采样不会在网格上迭代,而是随机采样体素,并再次添加随机扰动,使每个点偏离体素中心。
ANTS 中 MI 样本的默认数量转换为不同图像的不同采样百分比,因此没有直接替换此值的方法。antsRegistrationSyN.sh 脚本中的设置为 0.25。更密集地采样可以提高配准的捕获范围,但代价是计算时间。通过良好的初始化,可以降低采样百分比而不会损害性能。
我们还发现在进行仿射阶段之前从刚性对齐开始很有用。在 ANTS 中,设置 --do-rigid 会执行刚性对齐,而不是在仿射之前执行。
Anatomy of an antsRegistration call
原为: https://github.com/ANTsX/ANTs/wiki/Anatomy-of-an-antsRegistration-call
ANTs 注册示例的演练,其中详细说明了选项:
antsRegistration --dimensionality 3 --float 0 \
–output [thisfolder/pennTemplate_to_{sub},thisfolder/pennTemplate_to{sub}_Warped.nii.gz] \
–interpolation Linear \
–winsorize-image-intensities [0.005,0.995] \
–use-histogram-matching 0 \
–initial-moving-transform [ t 1 b r a i n , t1brain, t1brain,template,1] \
–transform Rigid[0.1] \
–metric MI[ t 1 b r a i n , t1brain, t1brain,template,1,32,Regular,0.25] \
–convergence [1000x500x250x100,1e-6,10] \
–shrink-factors 8x4x2x1 \
–smoothing-sigmas 3x2x1x0vox \
–transform Affine[0.1] \
–metric MI[ t 1 b r a i n , t1brain, t1brain,template,1,32,Regular,0.25] \
–convergence [1000x500x250x100,1e-6,10] \
–shrink-factors 8x4x2x1 \
–smoothing-sigmas 3x2x1x0vox \
–transform SyN[0.1,3,0] \
–metric CC[ t 1 b r a i n , t1brain, t1brain,template,1,4] \
–convergence [100x70x50x20,1e-6,10] \
–shrink-factors 8x4x2x1 \
–smoothing-sigmas 3x2x1x0vox \
-x $brainlesionmask
介绍:
配准(有时称为“规范化”)使一张图像与另一张图像相匹配,这样相同的体素大致指代两个大脑中的相同结构。固定(或目标)图像通常是一个模板,但您可以将任何两张图像相互配准,从计算的角度来看,模板没有什么特别之处。
配准算法:
为了实现最佳配准,ANT 中使用了一组算法:刚性、仿射和 SyN。“刚性”配准不会使大脑变形或缩放,它只会旋转和移动大脑(整个图像被视为刚性物体)。“仿射”配准不仅允许旋转和运动,还允许剪切和缩放。这进一步允许匹配大脑的大小。“刚性”和“仿射”配准也称为线性配准,因为图像的每个点都取决于其他点在空间中的运动。线性配准只能起到表面作用,您可以想象脑回和脑沟仍然未对齐。为了正确配准单个脑回和脑沟,我们需要非线性配准。ANT 中有几种非线性算法,但我们通常使用 SyN,这是性能最好的算法之一(参见 Klein 2009)。
迭代:
除了执行配准算法外,ANTs 还会以不同的分辨率(称为级别)逐步改进每个算法内的配准。其想法是从“模糊”图像(低分辨率、高度平滑)开始,将它们相互配准,然后进入下一步,使用更清晰的高分辨率版本,依此类推。这就是为什么您在配准调用中看到 1000x500x250x100 的原因,这意味着将有 4 个级别。数字显示每个级别的迭代次数。
上面的 antsRegistration 调用运行刚性、仿射和 SyN 配准。它是脚本 antsRegistrationSyN.sh 发出的确切调用。以下是该调用每一行的逐行注释。请注意,以 $ 开头的单词是我们之前定义的变量。即:
thisfolder=/user/local/mydata/
sub=Subject1
template=Template.nii.gz
t1brain=Subject1.nii.gz
预处理选项
前两个参数告诉 antsRegistration 图像是 3D 的,并且将使用双精度浮点数进行计算和输出。
antsRegistration --dimensionality 3 --float 0 \
将重新采样到固定空间的移动图像保存为
缺少上标或下标参数thisfolder/pennTemplate_to_{sub}Warped.nii.gz 也可以选择将重新采样到移动空间的固定图像输出。
–output [thisfolder/pennTemplate_to{sub},thisfolder/pennTemplate_to{sub}_Warped.nii.gz]
写入扭曲图像时使用的插值类型。
这仅适用于配准结束时输出图像的重新采样(使用 --output 指定)。它不会影响配准期间的内部重新采样。
–interpolation Linear \
Winsorization 在配准过程中剪切异常强度。图像直方图的指定分位数定义最小和最大强度。这可以帮助稳定图像指标,但过度剪切可能会破坏图像中的对比度。
输出扭曲图像不受此设置的影响。要预览图像上的 Winsorization,请将 ImageMath 与 TruncateImageIntensity 结合使用。
–winsorize-image-intensities [0.005,0.995]
直方图匹配是一个预处理步骤,转换输入强度,使固定图像和移动图像的直方图尽可能接近匹配。这在某些应用中很有用,但默认情况下处于关闭状态。
–use-histogram-matching 0 \
初始移动变换用于在配准之前快速对齐图像。优化过程要求图像大致重叠,如果图像在物理空间中相距太远,优化过程将会失败。初始化有多种选项:0-通过中点匹配(即,一个图像的中心体素将与另一个图像的中心体素对齐)
1-通过质心匹配
2-通过原点匹配(即物理坐标 0,0,0,由图像标题定义)质心对齐通常效果很好。
或者,您可以指定使用 antsAI 获得的初始仿射变换 .mat 文件,该文件使用不同的初始变换(旋转和/或平移)运行许多快速配准,以找到最佳效果。
–initial-moving-transform [ t 1 b r a i n , t1brain, t1brain,template,1] \
注册阶段
配准的每个阶段都有一个转换模型、一个相似性指标以及如何运行优化的详细信息。这些阶段从最简单到最复杂的转换进行。大多数用户将从 Rigid 开始。
Rigid 变换的梯度步长为 0.1。与所有优化一样,步长涉及多种权衡。较小的步长可能更准确,但需要更长的时间,并且可能过早收敛。较大的步长可能会超出最佳解决方案。对于大多数大脑配准,最佳值约为 0.1-0.25。
--transform Rigid[0.1] \
该度量衡量两幅图像之间的相似性,度量的梯度用于更新变换参数。所有 ANT 度量都具有 [固定、移动、参数] 的形式。跟踪哪个空间定义为固定,哪个空间定义为移动非常重要。互信息使用两幅图像的直方图来检查相似性,这意味着即使图像相关性不强,它也可以检测到相似的解剖模式。这使其对于模态间配准非常有用。它的计算速度也相当快且稳健,使其成为刚性配准的理想选择。值 1 是权重,用于进行多模态配准。以下是多模态配准调用的示例
–metric CC[
t
1
b
r
a
i
n
,
t1brain,
t1brain,template,0.5,4] # CC 半径 4,t1 上的权重 0.5,密集采样 # --metric MI[
t
2
b
r
a
i
n
,
t2brain,
t2brain,T2template,0.5,32,Regular,0.25] # t2 上的权重 0.5
MI 参数为 [fixed, moving, weight, bins, samples, samplesPercentage] 权重在内部进行了归一化,因此总和为 1。度量标准本身也进行了归一化,因此您可以组合不同的度量标准,而无需原始度量标准数字之间的任何对应关系。在上面的示例中,t1 上的 CC 和 t2 上的 MI 权重相等,因此它们对转换的贡献都相同。
我们的示例调用有 32 个 MI 箱,并且在 25% 的体素中定期对值进行采样,即每四个体素中考虑一个体素。
--metric MI[$t1brain,$template,1,32,Regular,0.25] \
我们将运行 4 个级别(多分辨率步骤),最大迭代次数为 1000、500、250、100。阈值(1e-6)指示算法在最后 10 次迭代(convergenceWindowSize=10)中,如果互信息的改进没有超过 1e-6,则停止。用简单的英语翻译就是:“如果最后 10 次迭代的 MI 值变化低于 1e-6,则停止迭代并进入下一个级别”。由于这个测试,我们可以对初始级别(这里是 1000)运行大量迭代。这里的图像通常很平滑且非常小,如下所述,并且几乎总是会快速收敛。
--convergence [1000x500x250x100,1e-6,10] \
4 个层次步骤的分辨率将除以 8、4、2、1。“收缩因子”的数量必须与 --convergence 选项中的级别数相匹配。这些因子使用固定图像作为参考。如果固定图像的间距为 1x1x1mm,而移动图像的间距为 2x2x2mm,则 --shrink-factors 4x2x1 将以 4mm 分辨率注册图像,然后是 2mm,然后是 1mm。但是,如果切换固定图像和移动图像,–shrink-factors 4x2x1 将以 8mm、4mm 和 2mm 注册图像。对于 3D 图像,将体积缩小 2 倍会使体素数量减少 8 倍。因此,以收缩因子 1 运行迭代所需的计算量大约是收缩因子 2 的 8 倍,依此类推。
--shrink-factors 8x4x2x1 \
接下来是每个步骤的平滑值。平滑是高斯的,其内核标准偏差为 3,2,1,0 体素。这里它们以体素为单位指定,但也可以以毫米为单位。要将 sigma 转换为 FWHM,您可以使用大约 2.36 的因子。图像在每个级别进行下采样之前都会进行平滑处理。平滑级别的数量必须与迭代级别的数量(即收敛)相匹配。
--smoothing-sigmas 3x2x1x0vox \
END OF RIGID STAGE ###########################################
###########################################
AFFINE STAGE
每次迭代的变形速度(梯度步长)再次为 0.1
--transform Affine[0.1] \
以下所有选项均已在上文解释
--metric MI[$t1brain,$template,1,32,Regular,0.25] \
--convergence [1000x500x250x100,1e-6,10] \
--shrink-factors 8x4x2x1 \
--smoothing-sigmas 3x2x1x0vox \
END AFFINE STAGE
############################################
############################################
START THE THIRD STAGE: SyN
SyN[]里面的参数有:gradientStep、updateFieldVarianceInVoxelSpace、totalFieldVarianceInVoxelSpace
gradientStep - 告诉算法每次迭代后每个点可以移动多少。SyN 度量计算每个点需要朝哪个方向移动。此移动可以很大(高 gradientStep)或很小(低 gradientStep)。脑成像的最佳值通常在 0.1-0.25 范围内。
每次迭代后,都会计算梯度场,该梯度场指示图像内的每个点在空间中的移动方式。此小变形(或“更新的”梯度场)与之前的更新相结合,形成“总”梯度变形。更新场和梯度场都可以平滑以使变形规则化。
updateFieldVarianceInVoxelSpace - 通过在此处添加惩罚,我们会平滑每次迭代时在“更新的”梯度场上计算的变形。默认值 3 体素已被证明效果相当好。增加此值将使更新场更平滑,这意味着它对局部变形的敏感度会降低。
totalFieldVarianceInVoxelSpace - 通过在此处添加惩罚,我们可以平滑在“总”梯度场上计算的变形。因此,此处的平滑适用于从开始计算的所有变形(即,在本次和所有之前的 SyN 迭代中)。
原则上,更新场的平滑可以看作是流体配准,而总场的平滑可以看作是弹性配准。向总场添加正则化项会使图像“更硬”,因为它会抑制总变形量。
这两个参数都会影响收敛所需的最佳步长和迭代次数。
--transform SyN[0.1,3,0] \
在 SyN 阶段,我们使用互相关 (CC) 而不是互信息 (MI)。对于模态内神经成像,CC 比 MI 更适合可变形配准。CC 不会检查图像的直方图,而是测量体素局部邻域之间的相关性。对于图像中的每个点,都会为该点及其邻域计算 CC;半径为 n 意味着邻域将是该点周围的 2n+1 立方体。因此,较大的半径会大大增加计算时间,但会使用更多信息。2-4 的值适用于大多数脑成像,更大的值可以帮助提高对难题的稳健性(例如,组织损伤或去除会降低对比度的低信息邻域)。
调用为 [fixed,moving,weight,radius]
--metric CC[$t1brain,$template,1,4] \
以下选项已在上文中解释,其工作方式相同。请注意,由于 SyN 和 CC 的计算成本非常高,因此此处的 20 次全分辨率迭代将花费最长的时间。大量全分辨率迭代可能比所有阶段的所有先前迭代的总和还要长。使用 --verbose,注册将打印每次迭代所花费的时间。
--convergence [100x70x50x20,1e-6,10] \
--shrink-factors 8x4x2x1 \
--smoothing-sigmas 3x2x1x0vox \
END OF SyN TRANSFORMATION
#############################################
掩码将度量的计算限制在某个区域。当相似性需要评估时,掩码应为 1,否则为 0。掩码之外的任何内容都不会影响相似性度量。这可以有所帮助,但也会阻碍配准。它可以通过忽略导致问题的因素来提供帮助(例如,如果我们试图在头部图像中对齐大脑,我们可能不太关心颈部)。但它也会破坏配准的稳定性,因为移入和移出掩码的点会急剧改变度量。与试图在整个感兴趣的结构周围绘制掩码相比,用较小的区域来处理特定问题(例如病变)不太可能导致问题。
-x $brainlesionmask
antsRegistration 可以接受目标、移动或两幅图像上的蒙版。有时您可能需要使用单独的蒙版来遮盖两侧。在这种情况下,您可以使用类似这样的方法:
-x [$fixed_mask,$moving_mask]
注册提示
- 在 antsRegistration(即 N4)之前运行偏差校正。它有助于获得更好的注册。
- 在注册大脑图像之前移除头骨。
- 当一个图像中的特征与另一个图像没有正确匹配时,使用遮罩。例如,具有不同视野的图像,或将有病变的大脑注册到没有病变的大脑。如果您真的没有病变遮罩,即使是粗糙和不精确的病变绘制也会有所帮助(参见 Andersen 2010)。
- 良好的刚性和仿射对齐将使可变形注册更快、更稳健。如果注册失败,请仅运行刚性部分,然后仅运行仿射部分。如果这些不好,请在花更多时间进行可变形注册之前修复它们。