此示例显示了如何使用imregister
使用基于强度的图像配准,将两个磁共振(MRI)图像自动对齐到一个共同的坐标系统。与其他一些技术不同,这种方法不寻找特性或使用控制点。基于强度的注册通常非常适合于医学和遥感图像。
本例使用了两张膝关节的MRI图像。固定图像为自旋回波图像,运动图像为具有反转恢复的自旋回波图像。两个矢状切片是同时获得的,但排列稍不一致。
固定= dicomread (“1.dcm”);移动= dicomread (“knee2.dcm”);
的imshowpair
函数对于在注册过程的每个部分可视化图像是有用的。使用它来看到两个图像单独在蒙太奇时尚或显示他们堆叠,以显示错误配准的数量。
imshowpair(移动,固定的,“蒙太奇”)标题(“未注册”)
在重叠的图像中imshowpair
在美国,灰色区域对应的是具有相似强度的区域,而品红和绿色区域显示的是其中一个图像比另一个图像更亮的地方。在一些图像对中,绿色和品红区域并不总是表示错误配准,但在本例中,很容易使用颜色信息来查看错误配准的位置。
imshowpair(移动、固定)标题(“未注册”)
的imregconfig
函数可以轻松地选择正确的优化器和度量配置imregister
.优化器和度量变量是其属性控制注册的对象。有关更多信息,请参见为基于强度的图像配准创建优化器和度量.
这两个图像有不同的强度分布,这表明一个多模态配置。
[优化器,度量]=imregconfig(“多式联运”);
两幅图像之间的畸变包括缩放、旋转和可能的剪切。使用仿射变换来配准图像。
movingRegisteredDefault = imregister(移动,固定的,仿射的优化器,指标);
显示结果。这是非常罕见的imregister
将使图像与默认设置完美对齐。不过,使用它们是决定先调优哪些属性的有用方法。
imshowpair (movingRegisteredDefault、固定)标题(答:默认注册的)
初始注册不是很好。仍然有一些重要的区域排列不良,特别是在右侧边缘。尝试通过调整优化器和度量配置属性来改进注册。
disp(优化)
register.optimizer . oneplusoneevolutionary Properties: GrowthFactor: 1.050000e+00 Epsilon: 1.500000e-06 InitialRadius: 6.250000e-03 MaximumIterations: 100
disp(公制)
registration.metric.MattesMutualInformation属性:NumberOfSpatialSamples:500 NumberOfHistogramBins:50 UseAllPixels:1
的InitialRadius
优化器的特性控制了参数空间中用于优化几何变换的初始步长。当多模态配准问题不收敛于默认参数时,InitialRadius
是一个很好的第一个要调整的参数。从减少默认值开始InitialRadius
比例系数为3.5。
优化器。InitialRadius = optimizer.InitialRadius / 3.5;movingRegisteredAdjustedInitialRadius = imregister(移动,固定的,仿射的优化器,指标);
显示结果。调整InitialRadius
有积极的影响。在顶部和右侧边缘的图像对齐方面有一个明显的改进。
imshowpair (movingRegisteredAdjustedInitialRadius、固定)标题(B: InitialRadius调整的)
的MaximumIterations
属性控制优化器允许进行的最大迭代次数。增加MaximumIterations
允许注册搜索运行更长时间,并可能找到更好的注册结果。注册情况是否继续改善InitialRadius
从最后一步开始,是否使用大量迭代?
optimizer.MaximumIterations=300;MovingRegisteredJustedInitialRadius300=imregister(移动、固定、,仿射的优化器,指标);
显示结果。在注册方面的进一步改进是通过重用InitialRadius
优化器设置从以前的注册和允许优化器采取大量的迭代。
imshowpair (movingRegisteredAdjustedInitialRadius300、固定)标题('C: Adjusted InitialRadius, MaximumIterations = 300')
当给定一个良好的初始条件时,基于优化的配准效果最好。要想获得更好的配准结果,一种有用的技术是从更简单的转换类型开始,比如“刚性”
,然后使用生成的转换作为更复杂的转换类型的初始条件,如仿射的
.
功能imregtform
使用相同的算法imregister
,但返回一个几何变换对象作为输出,而不是一个注册的输出图像。使用imregtform
得到一个基于a的初始变换估计“相似”
模型(平移、旋转和缩放)。
先前的注册结果显示,在修改MaximumIterations
和InitialRadius
优化器的属性。保持这些优化器设置,同时使用初始条件,同时尝试进一步细化注册。
tformSimilarity = imregtform(移动,固定的,“相似”优化器,指标);
由于配准是在默认坐标系(也称为内部坐标系)中解决的,因此获取定义固定图像位置和分辨率的默认空间参照对象。
Rfixed = imref2d(大小(固定));
使用imwarp
应用几何变换输出的步骤imregtform
将移动图像与固定图像对齐。使用“OutputView”
选项imwarp
指定输出重采样图像的世界范围和分辨率。指定固定
随着“OutputView”
强迫重新采样的运动图像具有与固定图像相同的分辨率和世界范围。
tformSimilarity movingRegisteredRigid = imwarp(移动,“OutputView”, Rfixed);
显示结果。
imshowpair (movingRegisteredRigid、固定)标题(D:基于相似变换模型的配准)
的“T”
输出几何变换的性质定义了将移动中的点映射到固定中的相应点的变换矩阵。
tformSimilarity。T
ans =3×31.0331 -0.1110 0 0.1110 1.0331 0 -51.1491 6.9891 1.0000
使用“初始转换”
中的名称/值imregister
通过使用仿射的
的转换模型“相似”
结果用作几何变换的初始条件。这种精确的配准估计包括剪切的可能性。
movingRegisteredAffineWithIC = imregister(移动,固定的,仿射的,优化器,度量,...“初始转换”, tformSimilarity);
显示结果。使用“初始转换”
完善的“相似”
的结果imregtform
用完全仿射模型可以得到很好的配准结果。
imshowpair (movingRegisteredAffineWithIC、固定)标题(E:基于相似初始条件的仿射模型配准)
比较跑步的结果imregister
在不同的配置和初始条件下,很明显,在非配准中存在大量可以改变的输入参数,每个输入参数都可能导致不同的配准结果。
定量比较配准结果是很困难的,因为没有一种质量指标能够准确描述两幅图像的对齐。通常,必须通过可视化结果来定性地判断注册结果。在上面的结果中,C)和E)的配准结果都很好,很难从视觉上分辨出来。
通常,随着多模式配准质量的提高,视觉上判断配准质量变得更加困难。这是因为强度差异可以掩盖错位的区域。有时切换到不同的显示模式imshowpair
暴露隐藏的细节。(情况并非总是如此。)
imref2d
|imregconfig
|imregister
|imwarp
|MattesMutualInformation
|平均平方
|OnePlusOneEvolutionary
|RegularStepGradientDescent