(2)Elastix图像配准:参数文件(配准精度的关键)

文章目录

  • 前言
  • 一、Elastix简介
  • 二、参数文件(类型)
  • 三、参数文件(定义):由多个组件组成,每个组件包含多个参数。
    • 3.1、组件的相关参数
    • 3.2、图解组件
      • 3.2.1、图解 - 金字塔(pyramid)
      • 3.2.2、图解 - 度量(metric)
      • 3.2.3、图解 - 变换(transform):affine + bspline + rigid
  • 四、参数详解
    • 4.1、基础参数:FixedImage + MovingImage
    • 4.2、金字塔:Pyramid
    • 4.4、图像采样器 + 重采样器:ImageSampler + Resampler
    • 4.5、插值器 + 重采样插值器:Interpolator + ResampleInterpolator
    • 4.6、度量:Metric
    • 4.7、优化器:Optimizer
    • 4.8、变换:Transform
    • 4.9、配准结果:ResultImage
  • 五、图像配准的影响因素
    • 5.1、配准异常
    • 5.2、配准精度
    • 5.3、时间复杂度
    • 5.4、空间复杂度

前言

(1)Elastix图像配准:原理 + 源码(详解)

一、Elastix简介

Elastix是一个基于Insight Toolkit (ITK)开发的命令行工具,用于(医学)图像的刚性和非刚性配准

Elastix源码使用C++开发,由两个部分组成:
(1)实现图像配准功能的ITK样式类
(2)elastix包装器:负责读取和设置参数、实例化和连接组件、保存(中间)结果以及类似的“管理”任务。模块化设计可以添加新组件,而无需更改elastix核心。

图像配准:在空间上,找到移动图像中的体素 p 映射到固定图像中的体素 q
在这里插入图片描述

二、参数文件(类型)

Elastix官网:参数文件(根据不同类型,给出多种案例):分为以下几类:仪器类型(CT / MRI)、图像数据类型(2D / 3D),变换模型(rigid + affine + B-spline),度量标准(互信息 / 均方差)等等。如:3D图像配准(推荐模板):Par0033 - elastix

多种变换的使⽤策略:

  • 首先是刚性变换(EulerTransform)
  • 然后是仿射变换(AffineTransform)
  • 最后是B样条插值变换(BSplineTransform)

三、参数文件(定义):由多个组件组成,每个组件包含多个参数。

3.1、组件的相关参数

【理解与领悟】参数文件的每一个参数,才能实现图像的精确配准。

  • Elastix官网组件:列举了整个配准过程中的每个组件:组件基类 Component Base Classes
  • Elastix官网参数:列举了每个组件的相关参数 / 可调参数 / 协同参数:Parameters

3.2、图解组件

Elastix官网手册(第二章节):图像配准的基本组件
在这里插入图片描述

  • 固定图像(Fixed Image):用于将移动图像配准到其空间的图像。
  • 移动图像(Moving Image):用于待配准到固定图像空间的图像。
  • 金字塔(Image Pyramid):用于捕捉图像的全局和局部特征,有助于快速收敛和避免局部极小值。
  • 采样器(Image Sampler):用于在图像的指定区域内采集一定数量的像素,以进行相似性度量。
  • 插值器(Interpolator):用于在图像的非离散点上估计像素值。
  • 度量(Metric):用于度量固定图像和移动图像之间的相似性(损失函数)。
  • 优化器(Optimizer):通过梯度下降法来迭代更新变换参数,使得度量损失逐步降低。
    • 在每一个分辨率级别下(由低到高),通过度量衡量两个图像采集的像素,在优化器下,对移动图像进行逐步变换与插值。
  • 变换(Transform):用于变换移动图像以使其与固定图像对齐。

3.2.1、图解 - 金字塔(pyramid)

图像金字塔(Image Pyramid):对原始图像进行一系列降采样(缩小)或上采样(放大)的图像集合。不同尺度的图像堆叠在一起,形成金字塔的层级结构。

  • 低复杂图像可以增加配准成功的概率。例如:平滑且下采样的图像
  • 使⽤金字塔来指代尺度空间。例如:高斯金字塔、拉普拉斯金字塔、高斯尺度空间金字塔、样条和小波金字塔。高斯金字塔是最常见的一种。

在这里插入图片描述

3.2.2、图解 - 度量(metric)

  • 两个重要因素:像素之间的物理间距、图像在空间中相对于某些世界坐标系的位置
    • 没有空间信息的医学图像不应用于医学诊断、图像分析、特征提取、辅助放射治疗或图像引导手术。换句话说,缺乏空间信息的医学图像不仅无用而且有害。

在这里插入图片描述

  • 分辨率(Size):表示图像的尺度(长宽高)
  • 像素间距(Spacing):表示显微镜拍摄的尺寸,在像素中心之间测量。
    • 对实际物体的尺度缩放,且每个维度可以不同(各向异性)。
    • 像素间距转换物理尺寸:(20.0,30.0)x (7,6)=(140.0,180.0)。其中:(7,6)分别表示显微镜拍摄实际物体时,XY所对应的缩放比例(XY由显微镜决定)
  • (单位:um)微米(Physical extent):表示实际物体的物理尺寸,在像素中心之间测量。
  • 圆圈中心:表示像素的中心。
  • 图像原点(Origin):与图像中第一个像素的坐标相关联。
  • 像素:被认为是围绕保存数据值的像素中心的矩形区域Voronoi Region。
    像素的线性插值(Linear Interpolation):在以像素中心为角点(Pixel Coordinates)的Delaunay Region执行。

3.2.3、图解 - 变换(transform):affine + bspline + rigid

在这里插入图片描述

(1)非刚体形变

  • BSplineTransform(B样条变换):是一种基于B样条的非线性变换方法
    • 通过控制点(用于控制变换的形状)和插值函数(用于确定非控制点的值)来定义变换
    • 变换是局部的,每个像素的变换只受附近的控制点影响,这有助于减小整体计算的复杂性。

(2)刚体形变

  • AffineTransform(仿射变换):在三维空间中,平移、旋转、缩放和错切
    • 12 个自由度: 3 个平移参数,3 个旋转参数,3 个缩放参数,3 个错切参数。
    • 引入形变,但仍保持线性关系。
  • EulerTransform(欧拉变换):在三维空间中,多种旋转顺序和旋转角度
    • 3 个自由度:多种旋转顺序(如:XYZ、ZYX),每个旋转顺序对应3个旋转角度。
    • 不引入形变,但可能引入非线性关系。
  • RigidTransform(刚体变换):在三维空间中,平移和旋转
    • 6 个自由度:3 个平移参数,3 个旋转参数(通常是绕 X、Y 和 Z 轴的旋转角度)。

总结:仿射变换包含刚体变换,欧拉变换是刚体变换的特殊情况。但欧拉变换可以根据旋转顺序,灵活的控制旋转角度。
备注:在 Elastix 中,RigidTransform 通常是通过 EulerTransform 实现的。

四、参数详解

4.1、基础参数:FixedImage + MovingImage

序号参数简介适用范围备注
1(FixedInternalImagePixelType "float")固定图像:像素值类型float(默认)、short、unsigned short不同的数据类型,占用内存不同,精度也不同
2(MovingInternalImagePixelType "float")移动图像:像素值类型float(默认)、short、unsigned short
3(FixedImageDimension 3)固定图像:维度2D or 3D
4(MovingImageDimension 3)移动图像:维度2D or 3D
5(UseDirectionCosines "true")图像的方向余弦:用于描述像素在物理空间中的相对位置和定向。通常,图像被认为是一个离散的网格,每个像素占据一个网格单元。
  • Elastix的3D图像配准具有连续效应:在进行逐帧配准的过程中,前一帧的变换结果会被传递给下一帧,所以每一帧都会受到前一帧配准结果的影响。因此整个图像序列在配准过程中形成一个连续的变换链,以保持图像的整体一致性
  • 传播效应若在序列中的某一帧发生配准错误或者有较大变动,可能会对后续帧产生一定的影响。
  • 解决方案:单独处理异常帧,以平衡每一帧之间的相互影响。
  • Elastix4.2版本及之前,尚不完全支持图像的方向余弦。
  • Elastix4.3版本开始,完全支持;但出于向后兼容性,可以手动禁用。

4.2、金字塔:Pyramid

序号参数简介适用范围备注
1(FixedImagePyramid "FixedRecursiveImagePyramid")固定图像:金字塔类型递归金字塔对前一层平滑+降采样下采样:将在第一个分辨率中节省大量时间
(FixedImagePyramid “FixedSmoothingImagePyramid”)平滑金字塔对前一层平滑
(FixedImagePyramid “FixedShrinkingImagePyramid”)收缩金字塔对前一层下采样
2(MovingImagePyramid "MovingRecursiveImagePyramid")移动图像:金字塔类型递归金字塔
(MovingImagePyramid “MovingSmoothingImagePyramid”)高斯尺度空间金字塔
(MovingImagePyramid " MovingShrinkingImagePyramid")收缩金字塔
3(NumberOfResolutions 4)图像金字塔:分辨率层数0/1较差,3一般,4/5不错,10过度(1)若图像之间距离较远 / 分辨率高,则增加层数;(2)层数越多,变形越明显,时间复杂度也越高。
4(ImagePyramidSchedule 8 8 8 4 4 4 2 2 2 1 1 1)3D图像金字塔尺度(XYZ)每3个数字为一个分辨率层级,1表示保持原始分辨率。WARNING: ImagePyramidSchedule is not fully specified! A default pyramid schedule is used.默认:各向同性,每个分辨率减半

迭代轮数 = 金字塔层数 * 参数文件个数。
(1)参数文件 = 1,金字塔层数 = 5,迭代轮数 = 5(配准)
(2)参数文件 = 2,金字塔层数 = 5,迭代轮数 = 5 * 2(配准+变换)
(3)参数文件 = 3,金字塔层数 = 5,迭代轮数 = 5 * 2(配准+变换)
(4)参数文件 = 3,金字塔层数 = 1,迭代轮数 = 3
(4)参数文件 = 3,金字塔层数 = 1,迭代轮数 = 3

4.4、图像采样器 + 重采样器:ImageSampler + Resampler

下采样金字塔对于随机采样器或随机坐标采样器而言不是必需的。因为随机采样器无论如何都会选择⽤户定义的样本数量,而与图像大小无关。

序号参数简介适用范围备注
1(ImageSampler “Full” “Full” “Full”)图像采样器(用于在迭代计算时,使用重采样获取像素值)(XYZ)完整采样器:选择固定图像的所有体素坐标时间复杂度较高,但结果更准确。
(ImageSampler “Grid” “Grid” “Grid”)网格采样器:在固定图像上定义规则网格,并选择网格上的坐标。时间复杂度较低,但可能会在一些区域失去精度。
(ImageSampler "Random" "Random" "Random")官方推荐随机采样器:在固定图像中随机选择用户指定数量的体素时间复杂度更低,但结果可能不稳定。
(ImageSampler “RandomCooperative” “RandomCooperative” “RandomCooperative”)随机合作采样器:不限于体素位置,还可以选择体素之间的位置。使得成本函数变得更平滑,优化问题更容易解决。
2(Resampler "DefaultResampler")官方推荐重采样器(用于在应用最终配准结果变换时,使用图像重采样获取最终结果的像素值)默认的重采样器在大多数情况下,都能提供良好的性能。
(Resampler “OpenCLResampler”)OpenCL(Open Computing Language):用于并行计算的图像重采样(CPU / GPU)加速计算
3(NewSamplesEveryIteration "true" "true" "true")官方推荐每次迭代时是否生成新的样本点(XYZ)增加算法的多样性,帮助更好地搜索参数空间。
4(UseRandomSampleRegion "true")官方推荐设置随机采样的区域false:采样器从整个图像域中抽取样本;true:采样器随机选择一个体素,然后选择该体素周围方形邻域中的剩余样本。与SampleRegionSize结合使⽤
5(SampleRegionSize 50.0 50.0 50.0)官方推荐采样区域尺度(XYZ)30、50、60(合理值:图像的三分之一)
6(NumberOfSpatialSamples 3000 3000 3000)官方推荐空间采样点数量(XYZ)3000,不要低于2000在每次迭代中,随机选择一个503mm区域。在该区域中,按照均匀分布选取3000个样本。

4.5、插值器 + 重采样插值器:Interpolator + ResampleInterpolator

  • 高阶插值:可以捕捉细节,但容易受噪声干扰,可能过拟合。
  • 低阶插值:无法捕捉细节,将产生平滑曲线,可能欠拟合。

插值器的阶数范围ERROR: BSplineInterpolationOrder and FinalBSplineInterpolationOrder must be between 0 and 5

序号参数简介适用范围备注
1(Interpolator “NearestNeighborInterpolator”)插值器(用于在迭代计算时,使用插值来计算像素值)最近邻插值器:返回距离最近的体素的强度时间复杂度较低,但不够平滑。
(Interpolator “LinearInterpolator”)1阶B样条插值 = 线性插值线性插值器:使用距离为权重,返回周围体素的加权平均值时间复杂度中等,相对平滑。
(Interpolator “BSplineInterpolator”)N阶B样条插值器默认double类型时间复杂度较高,更高的精度和平滑度。
(Interpolator "BSplineInterpolatorFloat")N阶B样条插值器指定float类型占用内存减半、时间复杂度减半
(Interpolator “ReducedDimensionBSplineInterpolator”)N阶B样条插值器的变体在最后一个维度中,使⽤0阶样条(节省时间)
2(BSplineInterpolationOrder 3)官方推荐BSpline的插值阶数:必须在0到5之间(在迭代计算时)(1)可以分别指定每个分辨率的值(2)若只有一个值,则适用于所有分辨率0几乎没有配准效果,3增加配准形变程度。
3(ResampleInterpolator “FinalNearestNeighborInterpolator”)重采样插值器(用于在应用最终配准结果变换时,使用插值来计算最终结果的像素值)
(ResampleInterpolator “FinalLinearInterpolator”)
(ResampleInterpolator “FinalBSplineInterpolator”)
(ResampleInterpolator "FinalBSplineInterpolatorFloat")官方推荐
(ResampleInterpolator “ReducedDimensionBSplineInterpolator”)
4(FinalBSplineInterpolationOrder 0)官方推荐BSpline的插值阶数:必须在0到5之间(在应用最终配准结果变换时)(1)可以分别指定每个分辨率的值(2)若只有一个值,则适用于所有分辨率迭代计算:使用高阶来拟合细节;结果变换:使用低阶来减小过拟合。(若反向操作,效果差)

4.6、度量:Metric

  • 单度量多分辨率配准:在每个分辨率级别上,使用相同的度量。—— 简单图像的配准任务
  • 多度量多分辨率配准:在每个分辨率级别上,使用不同的度量。—— 复杂图像的配准任务

同一个参数文件,只能存放一个多分辨率配准ERROR: The parameter "Registration" is specified more than once.

序号参数简介适用范围备注
1(Registration "MultiResolutionRegistration")官方推荐单度量多分辨率配准简单任务、时间复杂度低若不需要多分辨率,则设置NumberOfResolutions=1,而无需设置其他任何内容。
(Registration "MultiMetricMultiResolutionRegistration")多度量多分辨率配准复杂任务、时间复杂度非常高
2(Metric0Weight 0.125) + (Metric1Weight 0.225) + (Metric2Weight 0.125)指定多个度量的权重与(多度量)搭配使用度量权重的数量必须和度量方法的方法一致
3(Metric "AdvancedMeanSquares" "AdvancedMattesMutualInformation" "NormalizedMutualInformation")指定多个度量的方法与(多度量)搭配使用
(Metric “AdvancedMeanSquares”)度量标准(度量:用于评估图像之间相似性的指标)均方差MSD适用于具有相等强度分布的两个图像(即相同模态图像
(Metric “AdvancedNormalizedCorrelation”)归一化相关系数NCC该度量对于强度分布之间的线性差异是不变的(适用CT图像)
(Metric "AdvancedMattesMutualInformation")官方推荐互信息MI两个图像的强度的概率分布关系(适用单模态+多模态
(Metric “NormalizedMutualInformation”)归一化互信息NMI在特定情况下,比MI的性能更好(适用单模态+多模态)
(Metric “AdvancedKappaStatistic”)Kappa统计KS测量分段结构的重叠(适用二值图像(分段)
4(ShowMetricValue "false")在迭代过程中,是否显示度量的汇总信息汇总信息:最终的度量值、度量值的平均值、最小值、最大值等(不区分每个度量的详细值)。通常设置false,以避免在控制台中显示过多信息。
5(ShowExactMetricValue "false" "false" "false")在迭代过程中,是否显示每个度量的详细信息详细信息:每个度量的单独结果、每个分辨率的结果等。与MetricNWeight数量一致
序号参数简介适用范围备注
1(NumberOfHistogramBins 32 32 32)官方推荐直方图 bin 数量(XYZ)bin数量越多,度量精度越高,但时间复杂度也越高。直方图:用于衡量图像之间的相似性
2(ErodeMask "false" "false" "false")官方推荐是否对掩模进行腐蚀操作(XYZ)(1)若为true,则仅对掩模=1的图像执行配准;(2)当图像包含没有实际意义的人造边缘时,配准可能会倾向于对齐这些人造边缘,从而忽略有意义的边缘。

4.7、优化器:Optimizer

  • 梯度下降(GD):StandardGradientDescent或RegularStepGradientDescent
  • Robbins‑Monro(RM):StandardGradientDescent 或 FiniteDifferenceGradientDescent

(1)GD 和 RM 实际上非常相似。使⽤完整采样器而不是随机采样器运行 RM 相当于执行 GD。
(2)建议使⽤ RM 而不是 GD,速度更快,但可能会恶化 GD 方案的收敛特性,因为每次迭代都会产生近似误差。
(3)AdaptiveStochasticGradientDescent:参数更少,且更稳健。

序号参数简介适用范围备注
1(Optimizer “StandardGradientDescent”)优化器:获得最优变换参数(SGD)随机梯度下降法对学习率敏感
(Optimizer “RegularStepGradientDescent”)(RSGD)固定步长的梯度下降法学习率步长:需要经验或试验来确定
(Optimizer "AdaptiveStochasticGradientDescent")官方推荐(ASGD)自适应随机梯度下降法在配准过程中,学习率会自动调整
(Optimizer “LimitedMemoryBroyden-Fletcher-Goldfarb-Shanno”)(LBFGS)拟牛顿法维护了一个有限的历史梯度信息,以估计牛顿方向。
(Optimizer “ConjugateGradient”)(CG)共轭梯度法在某些情况下,它可能比梯度下降法更高效。
(Optimizer “SimultaneousTruthandPerformanceLevelEstimation”)(STAPLE)估计每个像素的“真实标签”以及每个配准算法的性能水平法用于多模态
-(MaximumStepLength 0.015)最大步长(学习率):控制了每次参数更新的幅度与SGD一起使用(0.01 ~ 0.001)(1)较大:学习快,模型不收敛;(2)较小:学习慢,局部收敛,找不到最优解;
2(MaximumNumberOfIterations 500)官方推荐图像金字塔:每个分辨率的最大迭代次数。赶时间250、默认500、一般800、最好2000(1)iter次数决定是否收敛;(2)若配准成功,则iter次数越多,精度越高,但可能过拟合;(3)若配准失败,则iter次数越多,结果越异常;(4)若全脑配准,则iter次数越多,可能配准的slice越多;
(MaximumNumberOfIterations 300 300 600 600)若指定的参数少于金字塔层数,则循环赋值。
3(MaximumNumberOfSamplingAttempts 10 15 10)(XYZ)采样尝试的最大次数(默认0)有时无法抽取足够的相应样本,从而引发异常。使用此参数可以尝试绘制另一组样本。

以下参数默认效果即可满足要求,无需指定。且23456仅在1使用时有效。

序号参数简介适用范围备注
1(AutomaticParameterEstimation "true")自动估计参数(默认true):SP_a、SP_alpha、SigmoidMax、SigmoidMin 和 SigmoidScale(1)可以分别指定每个分辨率的值(2)若只有一个值,则适用于所有分辨率
2(NumberOfGradientMeasurements 10)梯度数N(默认0,表示自动估算该值):用于估计精确梯度和近似误差的平均平方幅值。原则上越多越好,但越慢。(1)可以分别指定每个分辨率的值(2)若只有一个值,则适用于所有分辨率
3(NumberOfJacobianMeasurements 5000 10000 20000)测量雅可比行列式的体素 M 的数量(默认M = max( 1000, nrofparams ),其中 nrofparams 为变换参数的数量):用于估计协方差矩阵。原则上越多越好,但越慢。(1)可以分别指定每个分辨率的值(2)若只有一个值,则适用于所有分辨率
4(NumberOfSamplesForNoiseCompensationFactor 100000)用于计算“精确”梯度的图像样本数(默认100000)原则上越多越好,但越慢。(1)可以分别指定每个分辨率的值(2)若只有一个值,则适用于所有分辨率
5(NumberOfSamplesForPrecondition 500000)用于计算预处理器梯度的图像样本数(默认500000)原则上越多越好,但越慢。(1)可以分别指定每个分辨率的值(2)若只有一个值,则适用于所有分辨率
6(RegularizationKappa 0.9)预处理器正则化

4.8、变换:Transform

多种变换的使⽤策略(由简单到复杂):

  • 首先是刚性变换(EulerTransform) —— (默认)旋转中心取固定图像的几何中心
  • 然后是仿射变换(AffineTransform) —— (默认)旋转中心取固定图像的几何中心
  • 最后是B样条插值变换(BSplineTransform)
    2222222222222
  • 同一个参数文件,只能存放一个变换模型ERROR: The parameter "Transform" is specified more than once.
  • 同一个参数文件,不能同时存放物理单位与体素单位ERROR: You can not specify both "FinalGridSpacingInVoxels" and "FinalGridSpacingInPhysicalUnits" in the parameter file.
  • 网格间距尺度需和分辨率层数一致ERROR: Invalid GridSpacingSchedule! The number of entries behind the GridSpacingSchedule option should equal the numberOfResolutions, or the numberOfResolutions * ImageDimension.
序号参数简介适用范围备注
1(Transform “TranslationTransform”)变换模型平移变换平移
(Transform “SimilarityTransform”)相似性变换(当移动与固定的缩放比较大时平移、旋转、缩放
(Transform "AffineTransform")仿射变换平移、旋转、缩放、错切
(Transform "EulerTransform")欧拉变换多种旋转顺序和旋转角度
(Transform "BSplineTransform")B样条插值变换非刚性变换
(Transform “SplineKernelTransform”)基于内核的B样条变换非刚性变换。比B样条效率低,但形变更精确
2(HowToCombineTransforms "Compose")官方推荐组合变换:在一个参数文件中,同时指定多个变换,并按指定的顺序将多个变换合并为一个复杂变换用于处理复杂的配准任务
3(仅限bspline)(FinalGridSpacingInPhysicalUnits 10.0 10.0 10.0)官方推荐(XYZ)最终网格间距的物理单位:毫米(mm)间隔越小,变换复杂度越高,可能过拟合。(1毫米mm = 1000微米um)
(FinalGridSpacingInVoxels 8.0 8.0 8.0)官方推荐(XYZ)最终网格间距的体素单位匹配较小结构:4、8、16;匹配较大结构:32
4(仅限bspline)(GridSpacingSchedule 6.0 6.0 6.0 4.0 4.0 4.0 2.5 2.5 2.5 1.0 1.0 1.0)官方推荐(XYZ)每个分辨率级别的网格间距尺度分辨率级别0中的网格间距:6×8=48体素,经过32和20体素,最终分辨率级别为8体素。
序号参数简介适用范围备注
1(AutomaticTransformInitialization "true")自动估计初始变换参数解决问题:当两个图像之间的初始对齐非常偏离时,无法启动非刚性配准。
2(Origins仅限Affine)(AutomaticTransformInitializationMethod "Origins")自动估计初始变换参数的方法使用固定图像和移动图像的(原点)来初始化变换场平滑处理,模糊所有细节,将配准集中在主要结构上。
(AutomaticTransformInitializationMethod “GeometricalCenter”)使用固定图像和移动图像的(几何中心)来初始化变换场
(AutomaticTransformInitializationMethod “CenterOfMass”)使用固定图像和移动图像的(质心)来初始化变换场
3(AutomaticScalesEstimation "true")官方推荐自动估计变换的尺度为变换模型的每个像素定义了一个缩放值(在迭代计算时)
4(WriteTransformParametersEachIteration "false")在每次迭代后,是否保存变换参数。
5(WriteTransformParametersEachResolution "false")在每个分辨率后,是否保存变换参数。
6(WriteResultImageAfterEachResolution "false")在每个分辨率后,是否保存最终的配准结果图像。

4.9、配准结果:ResultImage

序号参数简介适用范围
1(UseFastAndLowMemoryVersion "true")启用快速和低内存版本精度低、运算速度块、内存占用低
2(DefaultPixelValue 0)当某个像素值未定义时,将其默认设置为 0。
3(WriteResultImage "true")是否保存配准结果图像
4(ResultImagePixelType "unsigned short")配准结果图像的像素类型float(默认)、short、unsigned short
5(ResultImageFormat "tif")配准结果图像的图像格式mhd、tif

五、图像配准的影响因素

5.1、配准异常

影响因素简介解决方法
XYZElastix默认各向同性最终网格间距的物理单位=(FinalGridSpacingInPhysicalUnits 10.0 10.0 10.0)
数据类型Elastix同时支持8-bit与16bit的图像(固定与移动)
图像尺度固定图像与移动图像的尺度需一致
图像质量(太差)(1)背景与前景不具有区分度;(2)四个角全黑/四周全黑图像分割,使背景为0

5.2、配准精度

影响因素简介解决方法
iter次数(不足)
图像质量(较差)前景与背景有一定区分度,但效果不明显(1)图像调色:亮度 + 对比度 + gamma(2)参数文件:调参
(多个)参数文件只影响配准精度,若使用不当则系统会直接报错,而不会导致配准异常。(1)文件类型rigid、affine、bspline;(2)组件的协同参数
(多个)移动图像对同一张图像通过不同处理方法得到多张图像(特征),用于迭代优化。

以下列举的是常规因素:
备注:若需要根据组件与参数之间的协同关系进行详细调参,可以参考Parameters。

  • 图像金字塔(NumberOfResolutions 4)
  • 插值器(BSplineInterpolationOrder 3)
  • 重采样插值器(FinalBSplineInterpolationOrder 0)
  • 度量(Registration "MultiResolutionRegistration") + (Registration "MultiMetricMultiResolutionRegistration")
  • 掩膜(ErodeMask "false" "false" "false")
  • 优化器(MaximumNumberOfIterations 500)
  • 变换(FinalGridSpacingInPhysicalUnits 10.0 10.0 10.0)

5.3、时间复杂度

  • 若显示详细的过程记录信息,则极大增加时耗。
  • 金字塔pyramid
    (1)金字塔类型(递增):递归金字塔 -> 缩小金字塔 -> 平滑金字塔
    (2)金字塔分辨率级别:(NumberOfResolutions 4) 层数越多,变形效果越明显,但时间复杂度也越高。
  • 多分辨率(递增)单一度量 -> 多个度量 —— 影响因素最高
  • 变换模型(递增)线性变换(刚性变换和仿射变换) -> 非线性变换(B样条变换)
  • 插值器与重采样插值器(递增)最近邻 -> 线性 -> 一阶B样条 -> 二阶B样条等 —— 影响因素第二
  • 图像采样器(递增)Full -> Grid -> Random
  • 度量metric(NumberOfHistogramBins 32 32 32) bin数量越多,度量精度越高,但时间复杂度也越高。
  • (UseFastAndLowMemoryVersion “true”):精度低、运算速度块、内存占用低

5.4、空间复杂度

官网介绍:Memory consumption in transformix

  • (FixedInternalImagePixelType “float”)float、short、unsigned short
  • (MovingInternalImagePixelType “float”)float、short、unsigned short
  • (ResultImagePixelType “unsigned short”)float、short、unsigned short
  • 插值器BSplineInterpolator(默认double类型)、BSplineInterpolatorFloat
  • 重采样插值器FinalBSplineInterpolator(默认double类型)、FinalBSplineInterpolatorFloat

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/645697.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wpf控件Expander集合下的像素滚动

项目场景:Expander集合滚动 如下图,有一个Expander集合,且设置 ScrollViewer.VerticalScrollBarVisibility "Auto" 每个Expaner下包含有若干元素,当打开Expader(即IsExpanded "true")时&#…

网络通讯接口RS232与RS485含义与区别

在现代化数据中心机房中,无论是前期设计、现场调试还是后期维护,通常都要了解通信协议,如机房供电设备、环境设备、空调设备等综合集中监控。通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。协议定义了数据单元使用的格式&#…

C#,最小生成树(MST)博鲁夫卡(Boruvka)算法的源代码

Otakar Boruvka 本文给出Boruvka算法的C#实现源代码。 Boruvka算法用于查找边加权图的最小生成树(MST),它早于Prim和Kruskal的算法,但仍然可以被认为是两者的关联。 一、Boruvka算法的历史 1926年,奥塔卡博鲁夫卡&…

QQ云端机器人登录系统php源码

这款源码主要是针对群机器人爱好者的,这是一个通过对接挂机宝里面机器人框架的一个网页站点,用户通过网页登录 QQ 账号至挂机宝里面框架(可扫码登录、账密登录、跳转 QQ 快捷登录),无需通过机器人即可实现登录&#xf…

Oracle Linux 6.10 安装图解

风险告知 本人及本篇博文不为任何人及任何行为的任何风险承担责任,图解仅供参考,请悉知!本次安装图解是在一个全新的演示环境下进行的,演示环境中没有任何有价值的数据,但这并不代表摆在你面前的环境也是如此。生产环境…

ZK高可用架构涉及常用功能整理

ZK高可用架构涉及常用功能整理 1. zk的高可用系统架构和相关组件1.1 Quorum机制1.2 ZAB协议 2. zk的核心参数2.1 常规配置2.2 特殊优化配置 3. zk常用命令3.1 常用基础命令3.2 常用运维命令 4. 事务性4.1 数据写流程4.2 数据读流程 5. 疑问和思考5.1 zk不擅长处理哪些场景&…

gitlab runner 安装、注册、配置、使用

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

「一本通 3.6 例 1」分离的路径

题目描述 为了从 F F F 个草场中的一个走到另一个,贝茜和她的同伴们不得不路过一些她们讨厌的可怕的树。奶牛们已经厌倦了被迫走某一条路,所以她们想建一些新路,使每一对草场之间都会至少有两条相互分离的路径,这样她们就有多一…

vue常用指令(v-show)

一、v-show 指令 作用: 根据真假值,切换元素的显示状态 二、代码演示 1、v-show 绑定判断条件后&#xff0c;根据布尔值决定是否显示图片 不显示图片 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><…

骨传导是哪个意思?骨传导的应用领域在哪

很多人都问我骨传导是哪个意思&#xff1f;骨传导的应用领域在哪&#xff1f;我们都知道声音能够在固体、液体、空气三种介质中传播。通常情况下&#xff0c;声音进入我们内耳的方式主要有两种&#xff1a;空气传导和骨传导&#xff0c;骨传导也就是通过固体传导。我们比较熟悉…

深度学习——pycharm远程连接

目录 远程环境配置本地环境配置&#xff08;注意看假设&#xff01;&#xff01;!这是很多博客里没写的&#xff09;步骤1步骤2步骤2.1 配置Connection步骤2.2 配置Mappings 步骤3 配置本地项目的远程解释器技巧1 pycharm中远程终端连接技巧2 远程目录技巧3 上传代码文件技巧4 …

自锁设计更稳固,同为科技(TOWE)服务器电脑IEC 60320电源线

说起IEC 60320标准电源线&#xff0c;可能很多人不知道具体是什么东西&#xff0c;但要说到台式电脑电源线&#xff0c;那大家就都能耳熟能详了。IEC 60320电源线的用途十分广泛&#xff0c;包括家用电器、医疗设备、数据中心服务器、商业机械设备、自动化生产线等都是用此类电…

API网关-Apinto压缩包方式自动化安装配置教程

文章目录 前言一、Apinto安装教程1. 复制脚本2. 增加执行权限3. 执行脚本4. Apinto命令4.1 启动Apinto4.2 停止Apinto4.3 重启Apinto4.4 查看Apinto版本信息4.5 加入Apinto集群4.6 离开Apinto集群4.7 查看Apinto节点信息 5. 卸载Apinto 二、Apserver(Apinto Dashboard V3)安装教…

力扣1027. 最长等差数列

动态规划 思路&#xff1a; 可以参考力扣1218. 最长定差子序列目前不清楚公差&#xff0c;可以将序列最大最小值找到&#xff0c;公差的范围是 [-(max - min), (max - min)]&#xff0c;按公差递增迭代遍历求出最长等差数列&#xff1b; class Solution { public:int longest…

IDEA 创建maven项目没有src

环境&#xff1a; IntelliJ IDEA 2022.3.3 (Ultimate Edition) JDK 17 Windows 11 10.0 Maven 3.9.5 创建maven项目的时候没有src目录 试过网上说的重新配置maven库&#xff0c;增加vm-options&#xff0c;并没有什么用。直到我看见了 正常创建就好了。

[计算机提升] 清理系统盘的前期准备

5.1 清理系统盘的前期准备 5.1.1 系统盘之殇&#xff1a;为什么系统盘会越来越大 在windows系统中&#xff0c;系统盘一般是C盘&#xff0c;随着电脑使用时间变长&#xff0c;系统盘会变得越来越大。而系统盘通常在安装系统时已经固定好了&#xff0c;如果系统盘的剩余空间太…

接收邮件触发器

无代码自动化-接收邮件触发器-做的最好的是make.com。数环通和集简云在这方面差了很多&#xff0c;我考虑主要原因应该是国内没有用邮件的习惯&#xff0c;都是微信来微信去。 2024年1月25日的观察结果 集简云 有邮件触发器&#xff0c;但是它获取的邮件信息很少。 我最关心…

【动态规划】【map】【C++算法】1289. 下降路径最小和 II

作者推荐 视频算法专题 本文涉及知识点 动态规划汇总 map LeetCode1289. 下降路径最小和 II 给你一个 n x n 整数矩阵 grid &#xff0c;请你返回 非零偏移下降路径 数字和的最小值。 非零偏移下降路径 定义为&#xff1a;从 grid 数组中的每一行选择一个数字&#xff0c;…

什么是超融合?

文章标题 前言一、超融合是什么&#xff1f;二、超融合原理2.1、超融合三大组件2.2、超融合和传统架构对比2.3、传统方案和超融合软件架构与资源管理模式对比 三、 超融合与SDS、分布式存储关系3.1、SDS是什么 &#xff1f;3.2、分布式存储是什么&#xff1f;3.3、超融合是什么…

开始学习Vue(路由)

一、什么是路由 SPA 指的是一个 web 网站只有唯一的一个 HTML 页面&#xff0c;所有组 件的展示与切换都在这唯一的一个页面内完成。 此时&#xff0c;不同组件之间的切换需要通过前端路由来实现。 结论&#xff1a;在 SPA 项目中&#xff0c;不同功能之间的切换&#xff0…