Parameters
Class DistancePreservingRigidityPenalty

PenaltyGridSpacingInVoxels: defines the grid spacing with which the rigidity penalty is calculated. In this current version, the grid spacing is set to be constant over different resolutions.

• In the publication above, the grid spacing was set as [4, 4, 1].

SegmentedImageName: The file name of the image to specify the rigidity index of voxels in the fixed image. The image has only non-integer values as follows: 1) background: 0, 2) rigid region1: 1, 3) rigid region2: 2, and so on.

• example: (SegmentedImageName "BoneSegmentation.mhd")

Metric: Select this metric as follows:
(Metric "DistancePreservingRigidityPenalty")

Optimizer: Select this optimizer as follows:
(Optimizer "AdaGrad")

MaximumNumberOfIterations: The maximum number of iterations in each resolution.
example: (MaximumNumberOfIterations 100 100 50)
Default/recommended value: 500. When you are in a hurry, you may go down to 250 for example. When you have plenty of time, and want to be absolutely sure of the best results, a setting of 2000 is reasonable. In general, 500 gives satisfactory results.

MaximumNumberOfSamplingAttempts: The maximum number of sampling attempts. Sometimes not enough corresponding samples can be drawn, upon which an exception is thrown. With this parameter it is possible to try to draw another set of samples.
example: (MaximumNumberOfSamplingAttempts 10 15 10)
Default value: 0, i.e. just fail immediately, for backward compatibility.

AutomaticParameterEstimation: When this parameter is set to "true", many other parameters are calculated automatically: SP_a, SP_alpha, SigmoidMax, SigmoidMin, and SigmoidScale. In the elastix.log file the actually chosen values for these parameters can be found.
example: (AutomaticParameterEstimation "true")
Default/recommended value: "true". The parameter can be specified for each resolution, or for all resolutions at once.

StepSizeStrategy: When this parameter is set to "true", the adaptive step size mechanism described in the documentation of itk::itkAdaptiveStepsizeOptimizer is used. The parameter can be specified for each resolution, or for all resolutions at once.
example: (StepSizeStrategy "Adaptive")
Default/recommend value: "Adaptive", because it makes the registration more robust. In case of using a RandomCoordinate sampler, with (UseRandomSampleRegion "true"), the adaptive step size mechanism is turned off, no matter the user setting.

MaximumStepLength: Also called . This parameter can be considered as the maximum voxel displacement between two iterations. The larger this parameter, the more aggressive the optimization. The parameter can be specified for each resolution, or for all resolutions at once.
example: (MaximumStepLength 1.0)
Default: mean voxel spacing of fixed and moving image. This seems to work well in general. This parameter only has influence when AutomaticParameterEstimation is used.

SP_a: The gain at each iteration is defined by
.
SP_a can be defined for each resolution.
example: (SP_a 3200.0 3200.0 1600.0)
The default value is 400.0. Tuning this variable for you specific problem is recommended. Alternatively set the AutomaticParameterEstimation to "true". In that case, you do not need to specify SP_a. SP_a has no influence when AutomaticParameterEstimation is used.

SP_A: The gain at each iteration is defined by
.
SP_A can be defined for each resolution.
example: (SP_A 50.0 50.0 100.0)
The default/recommended value for this particular optimizer is 20.0.

SP_alpha: The gain at each iteration is defined by
.
SP_alpha can be defined for each resolution.
example: (SP_alpha 0.602 0.602 0.602)
The default/recommended value for this particular optimizer is 1.0. Alternatively set the AutomaticParameterEstimation to "true". In that case, you do not need to specify SP_alpha. SP_alpha has no influence when AutomaticParameterEstimation is used.

SigmoidMax: The maximum of the sigmoid function ( ). Must be larger than 0. The parameter can be specified for each resolution, or for all resolutions at once.
example: (SigmoidMax 1.0)
Default/recommended value: 1.0. This parameter has no influence when AutomaticParameterEstimation is used. In that case, always a value 1.0 is used.

SigmoidMin: The minimum of the sigmoid function ( ). Must be smaller than 0. The parameter can be specified for each resolution, or for all resolutions at once.
example: (SigmoidMin -0.8)
Default value: -0.8. This parameter has no influence when AutomaticParameterEstimation is used. In that case, the value is automatically determined, depending on the images, metric etc.

SigmoidScale: The scale/width of the sigmoid function ( ). The parameter can be specified for each resolution, or for all resolutions at once.
example: (SigmoidScale 0.00001)
Default value: 1e-8. This parameter has no influence when AutomaticParameterEstimation is used. In that case, the value is automatically determined, depending on the images, metric etc.

SigmoidInitialTime: the initial time input for the sigmoid ( ). Must be larger than 0.0. The parameter can be specified for each resolution, or for all resolutions at once.
example: (SigmoidInitialTime 0.0 5.0 5.0)
Default value: 0.0. When increased, the optimization starts with smaller steps, leaving the possibility to increase the steps when necessary. If set to 0.0, the method starts with with the largest step allowed.

NumberOfGradientMeasurements: Number of gradients N to estimate the average square magnitudes of the exact gradient and the approximation error. The parameter can be specified for each resolution, or for all resolutions at once.
example: (NumberOfGradientMeasurements 10)
Default value: 0, which means that the value is automatically estimated. In principle, the more the better, but the slower. In practice N=10 is usually sufficient. But the automatic estimation achieved by N=0 also works good. The parameter has only influence when AutomaticParameterEstimation is used.

NumberOfJacobianMeasurements: The number of voxels M where the Jacobian is measured, which is used to estimate the covariance matrix. The parameter can be specified for each resolution, or for all resolutions at once.
example: (NumberOfJacobianMeasurements 5000 10000 20000)
Default value: M = max( 1000, nrofparams ), with nrofparams the number of transform parameters. This is a rather crude rule of thumb, which seems to work in practice. In principle, the more the better, but the slower. The parameter has only influence when AutomaticParameterEstimation is used.

NumberOfSamplesForNoiseCompensationFactor: The number of image samples used to compute the 'exact' gradient. The samples are chosen on a uniform grid. The parameter can be specified for each resolution, or for all resolutions at once.
example: (NumberOfSamplesForNoiseCompensationFactor 100000)
Default/recommended: 100000. This works in general. If the image is smaller, the number of samples is automatically reduced. In principle, the more the better, but the slower. The parameter has only influence when AutomaticParameterEstimation is used.

m_NumberOfSamplesForPrecondition: The number of image samples used to compute the gradient for preconditioner. The samples are chosen on a random sampler. The parameter can be specified for each resolution, or for all resolutions at once.
example: (NumberOfSamplesForPrecondition 500000)
Default/recommended: 500000. This works in general. If the image is smaller, the number of samples is automatically reduced. In principle, the more the better, but the slower. The parameter has only influence when AutomaticParameterEstimation is used.

RegularizationKappa: Selects for the preconditioner regularization. The parameter can be specified for each resolution, or for all resolutions at once.
example: (RegularizationKappa 0.9)

Optimizer: Select this optimizer as follows:
(Optimizer "AdaptiveStochasticGradientDescent")

MaximumNumberOfIterations: The maximum number of iterations in each resolution.
example: (MaximumNumberOfIterations 100 100 50)
Default/recommended value: 500. When you are in a hurry, you may go down to 250 for example. When you have plenty of time, and want to be absolutely sure of the best results, a setting of 2000 is reasonable. In general, 500 gives satisfactory results.

MaximumNumberOfSamplingAttempts: The maximum number of sampling attempts. Sometimes not enough corresponding samples can be drawn, upon which an exception is thrown. With this parameter it is possible to try to draw another set of samples.
example: (MaximumNumberOfSamplingAttempts 10 15 10)
Default value: 0, i.e. just fail immediately, for backward compatibility.

AutomaticParameterEstimation: When this parameter is set to "true", many other parameters are calculated automatically: SP_a, SP_alpha, SigmoidMax, SigmoidMin, and SigmoidScale. In the elastix.log file the actually chosen values for these parameters can be found.
example: (AutomaticParameterEstimation "true")
Default/recommended value: "true". The parameter can be specified for each resolution, or for all resolutions at once.

UseAdaptiveStepSizes: When this parameter is set to "true", the adaptive step size mechanism described in the documentation of itk::AdaptiveStochasticGradientDescentOptimizer is used. The parameter can be specified for each resolution, or for all resolutions at once.
example: (UseAdaptiveStepSizes "true")
Default/recommend value: "true", because it makes the registration more robust. In case of using a RandomCoordinate sampler, with (UseRandomSampleRegion "true"), the adaptive step size mechanism is turned off, no matter the user setting.

MaximumStepLength: Also called . This parameter can be considered as the maximum voxel displacement between two iterations. The larger this parameter, the more aggressive the optimization. The parameter can be specified for each resolution, or for all resolutions at once.
example: (MaximumStepLength 1.0)
Default: mean voxel spacing of fixed and moving image. This seems to work well in general. This parameter only has influence when AutomaticParameterEstimation is used.

SP_a: The gain at each iteration is defined by
.
SP_a can be defined for each resolution.
example: (SP_a 3200.0 3200.0 1600.0)
The default value is 400.0. Tuning this variable for you specific problem is recommended. Alternatively set the AutomaticParameterEstimation to "true". In that case, you do not need to specify SP_a. SP_a has no influence when AutomaticParameterEstimation is used.

SP_A: The gain at each iteration is defined by
.
SP_A can be defined for each resolution.
example: (SP_A 50.0 50.0 100.0)
The default/recommended value for this particular optimizer is 20.0.

SP_alpha: The gain at each iteration is defined by
.
SP_alpha can be defined for each resolution.
example: (SP_alpha 0.602 0.602 0.602)
The default/recommended value for this particular optimizer is 1.0. Alternatively set the AutomaticParameterEstimation to "true". In that case, you do not need to specify SP_alpha. SP_alpha has no influence when AutomaticParameterEstimation is used.

SigmoidMax: The maximum of the sigmoid function ( ). Must be larger than 0. The parameter can be specified for each resolution, or for all resolutions at once.
example: (SigmoidMax 1.0)
Default/recommended value: 1.0. This parameter has no influence when AutomaticParameterEstimation is used. In that case, always a value 1.0 is used.

SigmoidMin: The minimum of the sigmoid function ( ). Must be smaller than 0. The parameter can be specified for each resolution, or for all resolutions at once.
example: (SigmoidMin -0.8)
Default value: -0.8. This parameter has no influence when AutomaticParameterEstimation is used. In that case, the value is automatically determined, depending on the images, metric etc.

SigmoidScale: The scale/width of the sigmoid function ( ). The parameter can be specified for each resolution, or for all resolutions at once.
example: (SigmoidScale 0.00001)
Default value: 1e-8. This parameter has no influence when AutomaticParameterEstimation is used. In that case, the value is automatically determined, depending on the images, metric etc.

SigmoidInitialTime: the initial time input for the sigmoid ( ). Must be larger than 0.0. The parameter can be specified for each resolution, or for all resolutions at once.
example: (SigmoidInitialTime 0.0 5.0 5.0)
Default value: 0.0. When increased, the optimization starts with smaller steps, leaving the possibility to increase the steps when necessary. If set to 0.0, the method starts with with the largest step allowed.

NumberOfGradientMeasurements: Number of gradients N to estimate the average square magnitudes of the exact gradient and the approximation error. The parameter can be specified for each resolution, or for all resolutions at once.
example: (NumberOfGradientMeasurements 10)
Default value: 0, which means that the value is automatically estimated. In principle, the more the better, but the slower. In practice N=10 is usually sufficient. But the automatic estimation achieved by N=0 also works good. The parameter has only influence when AutomaticParameterEstimation is used.

NumberOfJacobianMeasurements: The number of voxels M where the Jacobian is measured, which is used to estimate the covariance matrix. The parameter can be specified for each resolution, or for all resolutions at once.
example: (NumberOfJacobianMeasurements 5000 10000 20000)
Default value: M = max( 1000, nrofparams ), with nrofparams the number of transform parameters. This is a rather crude rule of thumb, which seems to work in practice. In principle, the more the better, but the slower. The parameter has only influence when AutomaticParameterEstimation is used.

NumberOfSamplesForExactGradient: The number of image samples used to compute the 'exact' gradient. The samples are chosen on a uniform grid. The parameter can be specified for each resolution, or for all resolutions at once.
example: (NumberOfSamplesForExactGradient 100000)
Default/recommended: 100000. This works in general. If the image is smaller, the number of samples is automatically reduced. In principle, the more the better, but the slower. The parameter has only influence when AutomaticParameterEstimation is used.

ASGDParameterEstimationMethod: The ASGD parameter estimation method used in this optimizer. The parameter can be specified for each resolution.
example: (ASGDParameterEstimationMethod "Original")
or (ASGDParameterEstimationMethod "DisplacementDistribution")
Default: Original.

MaximumDisplacementEstimationMethod: The suitable position selection method used only for displacement distribution estimation method. The parameter can be specified for each resolution.
example: (MaximumDisplacementEstimationMethod "2sigma")
or (MaximumDisplacementEstimationMethod "95percentile")
Default: 2sigma.

NoiseCompensation: Selects whether or not to use noise compensation. The parameter can be specified for each resolution, or for all resolutions at once.
example: (NoiseCompensation "true")
Default/recommended: true.

Optimizer: Select this optimizer as follows:
(Optimizer "AdaptiveStochasticLBFGS")

MaximumNumberOfIterations: The maximum number of iterations in each resolution.
example: (MaximumNumberOfIterations 100 100 50)
Default/recommended value: 500. When you are in a hurry, you may go down to 250 for example. When you have plenty of time, and want to be absolutely sure of the best results, a setting of 2000 is reasonable. In general, 500 gives satisfactory results.

MaximumNumberOfSamplingAttempts: The maximum number of sampling attempts. Sometimes not enough corresponding samples can be drawn, upon which an exception is thrown. With this parameter it is possible to try to draw another set of samples.
example: (MaximumNumberOfSamplingAttempts 10 15 10)
Default value: 0, i.e. just fail immediately, for backward compatibility.

AutomaticParameterEstimation: When this parameter is set to "true", many other parameters are calculated automatically: SP_a, SP_alpha, SigmoidMax, SigmoidMin, and SigmoidScale. In the elastix.log file the actually chosen values for these parameters can be found.
example: (AutomaticParameterEstimation "true")
Default/recommended value: "true". The parameter can be specified for each resolution, or for all resolutions at once.

UseAdaptiveStepSizes: When this parameter is set to "true", the adaptive step size mechanism described in the documentation of itk::AdaptiveStochasticVarianceReducedGradientOptimizer is used. The parameter can be specified for each resolution, or for all resolutions at once.
example: (UseAdaptiveStepSizes "true")
Default/recommend value: "true", because it makes the registration more robust. In case of using a RandomCoordinate sampler, with (UseRandomSampleRegion "true"), the adaptive step size mechanism is turned off, no matter the user setting.

MaximumStepLength: Also called . This parameter can be considered as the maximum voxel displacement between two iterations. The larger this parameter, the more aggressive the optimization. The parameter can be specified for each resolution, or for all resolutions at once.
example: (MaximumStepLength 1.0)
Default: mean voxel spacing of fixed and moving image. This seems to work well in general. This parameter only has influence when AutomaticParameterEstimation is used.

Optimizer: Select this optimizer as follows:
(Optimizer "AdaptiveStochasticVarianceReducedGradient")

MaximumNumberOfIterations: The maximum number of iterations in each resolution.
example: (MaximumNumberOfIterations 100 100 50)
Default/recommended value: 500. When you are in a hurry, you may go down to 250 for example. When you have plenty of time, and want to be absolutely sure of the best results, a setting of 2000 is reasonable. In general, 500 gives satisfactory results.

MaximumNumberOfSamplingAttempts: The maximum number of sampling attempts. Sometimes not enough corresponding samples can be drawn, upon which an exception is thrown. With this parameter it is possible to try to draw another set of samples.
example: (MaximumNumberOfSamplingAttempts 10 15 10)
Default value: 0, i.e. just fail immediately, for backward compatibility.

AutomaticParameterEstimation: When this parameter is set to "true", many other parameters are calculated automatically: SP_a, SP_alpha, SigmoidMax, SigmoidMin, and SigmoidScale. In the elastix.log file the actually chosen values for these parameters can be found.
example: (AutomaticParameterEstimation "true")
Default/recommended value: "true". The parameter can be specified for each resolution, or for all resolutions at once.

UseAdaptiveStepSizes: When this parameter is set to "true", the adaptive step size mechanism described in the documentation of itk::AdaptiveStochasticVarianceReducedGradientOptimizer is used. The parameter can be specified for each resolution, or for all resolutions at once.
example: (UseAdaptiveStepSizes "true")
Default/recommend value: "true", because it makes the registration more robust. In case of using a RandomCoordinate sampler, with (UseRandomSampleRegion "true"), the adaptive step size mechanism is turned off, no matter the user setting.

MaximumStepLength: Also called . This parameter can be considered as the maximum voxel displacement between two iterations. The larger this parameter, the more agressive the optimization. The parameter can be specified for each resolution, or for all resolutions at once.
example: (MaximumStepLength 1.0)
Default: mean voxel spacing of fixed and moving image. This seems to work well in general. This parameter only has influence when AutomaticParameterEstimation is used.

SP_a: The gain at each iteration is defined by
.
SP_a can be defined for each resolution.
example: (SP_a 3200.0 3200.0 1600.0)
The default value is 400.0. Tuning this variable for you specific problem is recommended. Alternatively set the AutomaticParameterEstimation to "true". In that case, you do not need to specify SP_a. SP_a has no influence when AutomaticParameterEstimation is used.

SP_A: The gain at each iteration is defined by
.
SP_A can be defined for each resolution.
example: (SP_A 50.0 50.0 100.0)
The default/recommended value for this particular optimizer is 20.0.

SP_alpha: The gain at each iteration is defined by
.
SP_alpha can be defined for each resolution.
example: (SP_alpha 0.602 0.602 0.602)
The default/recommended value for this particular optimizer is 1.0. Alternatively set the AutomaticParameterEstimation to "true". In that case, you do not need to specify SP_alpha. SP_alpha has no influence when AutomaticParameterEstimation is used.

SigmoidMax: The maximum of the sigmoid function ( ). Must be larger than 0. The parameter can be specified for each resolution, or for all resolutions at once.
example: (SigmoidMax 1.0)
Default/recommended value: 1.0. This parameter has no influence when AutomaticParameterEstimation is used. In that case, always a value 1.0 is used.

SigmoidMin: The minimum of the sigmoid function ( ). Must be smaller than 0. The parameter can be specified for each resolution, or for all resolutions at once.
example: (SigmoidMin -0.8)
Default value: -0.8. This parameter has no influence when AutomaticParameterEstimation is used. In that case, the value is automatically determined, depending on the images, metric etc.

SigmoidScale: The scale/width of the sigmoid function ( ). The parameter can be specified for each resolution, or for all resolutions at once.
example: (SigmoidScale 0.00001)
Default value: 1e-8. This parameter has no influence when AutomaticParameterEstimation is used. In that case, the value is automatically determined, depending on the images, metric etc.

SigmoidInitialTime: the initial time input for the sigmoid ( ). Must be larger than 0.0. The parameter can be specified for each resolution, or for all resolutions at once.
example: (SigmoidInitialTime 0.0 5.0 5.0)
Default value: 0.0. When increased, the optimization starts with smaller steps, leaving the possibility to increase the steps when necessary. If set to 0.0, the method starts with with the largest step allowed.

NumberOfGradientMeasurements: Number of gradients N to estimate the average square magnitudes of the exact gradient and the approximation error. The parameter can be specified for each resolution, or for all resolutions at once.
example: (NumberOfGradientMeasurements 10)
Default value: 0, which means that the value is automatically estimated. In principle, the more the better, but the slower. In practice N=10 is usually sufficient. But the automatic estimation achieved by N=0 also works good. The parameter has only influence when AutomaticParameterEstimation is used.

NumberOfJacobianMeasurements: The number of voxels M where the Jacobian is measured, which is used to estimate the covariance matrix. The parameter can be specified for each resolution, or for all resolutions at once.
example: (NumberOfJacobianMeasurements 5000 10000 20000)
Default value: M = max( 1000, nrofparams ), with nrofparams the number of transform parameters. This is a rather crude rule of thumb, which seems to work in practice. In principle, the more the better, but the slower. The parameter has only influence when AutomaticParameterEstimation is used.

NumberOfSamplesForExactGradient: The number of image samples used to compute the 'exact' gradient. The samples are chosen on a uniform grid. The parameter can be specified for each resolution, or for all resolutions at once.
example: (NumberOfSamplesForExactGradient 100000)
Default/recommended: 100000. This works in general. If the image is smaller, the number of samples is automatically reduced. In principle, the more the better, but the slower. The parameter has only influence when AutomaticParameterEstimation is used.

ASGDParameterEstimationMethod: The ASGD parameter estimation method used in this optimizer. The parameter can be specified for each resolution.
example: (ASGDParameterEstimationMethod "Original")
or (ASGDParameterEstimationMethod "DisplacementDistribution")
Default: Original.

MaximumDisplacementEstimationMethod: The suitable position selection method used only for displacement distribution estimation method. The parameter can be specified for each resolution.
example: (MaximumDisplacementEstimationMethod "2sigma")
or (MaximumDisplacementEstimationMethod "95percentile")
Default: 2sigma.

NoiseCompensation: Selects whether or not to use noise compensation. The parameter can be specified for each resolution, or for all resolutions at once.
example: (NoiseCompensation "true")
Default/recommended: true.

Transform: Select this transform as follows:
(Transform "AffineTransform")

Scales: the scale factor between the rotations and translations, used in the optimizer.
example: (Scales 200000.0)
example: (Scales 100000.0 60000.0 ... 80000.0)
If only one argument is given, that factor is used for the rotations. If more than one argument is given, then the number of arguments should be equal to the number of parameters: for each parameter its scale factor. If this parameter option is not used, by default the rotations are scaled by a factor of 100000.0. See also the AutomaticScalesEstimation parameter.

AutomaticScalesEstimation: if this parameter is set to "true" the Scales parameter is ignored and the scales are determined automatically.
example: ( AutomaticScalesEstimation "true" )
Default: "false" (for backwards compatibility). Recommended: "true".

CenterOfRotation: an index around which the image is rotated.
example: (CenterOfRotation 128 128 90)
By default the CenterOfRotation is set to the geometric center of the image.

AutomaticTransformInitialization: whether or not the initial translation between images should be estimated as the distance between their centers.
example: (AutomaticTransformInitialization "true")
By default "false" is assumed. So, no initial translation.

AutomaticTransformInitializationMethod: how to initialize this transform. Should be one of {GeometricalCenter, CenterOfGravity, Origins, GeometryTop}.
example: (AutomaticTransformInitializationMethod "CenterOfGravity")
By default "GeometricalCenter" is assumed.

Transform: Select this transform as follows:
(Transform "BSplineTransform")

BSplineTransformSplineOrder: choose a B-spline order 1,2, or 3.
example: (BSplineTransformSplineOrder 3)
Default value: 3 (cubic B-splines).

FinalGridSpacingInVoxels: the grid spacing of the B-spline transform for each dimension.
example: (FinalGridSpacingInVoxels 8.0 8.0 8.0)
If only one argument is given, that factor is used for each dimension. The spacing is not in millimeters, but in "voxel size units". The default is 16.0 in every dimension.

FinalGridSpacingInPhysicalUnits: the grid spacing of the B-spline transform for each dimension.
example: (FinalGridSpacingInPhysicalUnits 8.0 8.0 8.0)
If only one argument is given, that factor is used for each dimension. The spacing is specified in millimeters. If not specified, the FinalGridSpacingInVoxels is used, or the FinalGridSpacing, to compute a FinalGridSpacingInPhysicalUnits. If those are not specified, the default value for FinalGridSpacingInVoxels is used to compute a FinalGridSpacingInPhysicalUnits. If an affine transformation is provided as initial transformation, the control grid will be scaled to cover the fixed image domain in the space defined by the initial transformation.

GridSpacingSchedule: the grid spacing downsampling factors for the B-spline transform for each dimension and each resolution.
example: (GridSpacingSchedule 4.0 4.0 2.0 2.0 1.0 1.0)
Which is an example for a 2D image, using 3 resolutions.
For convenience, you may also specify only one value for each resolution:
example: (GridSpacingSchedule 4.0 2.0 1.0 )
which is equivalent to the example above.

PassiveEdgeWidth: the width of a band of control points at the border of the B-spline coefficient image that should remain passive during optimisation.
Can be specified for each resolution.
example: (PassiveEdgeWidth 0 1 2)
The default is zero for all resolutions. A value of 4 will avoid all deformations at the edge of the image. Make sure that 2*PassiveEdgeWidth < ControlPointGridSize in each dimension.

UseCyclicTransform: use the cyclic version of the B-spline transform which ensures that the B-spline polynomials wrap around in the slowest varying dimension. This is useful for dynamic imaging data in which the motion is assumed to be cyclic, for example in ECG-gated or respiratory gated CTA. For more information see the paper: Nonrigid registration of dynamic medical imaging data using nD+t B-splines and a groupwise optimization approach, C.T. Metz, S. Klein, M. Schaap, T. van Walsum and W.J. Niessen, Medical Image Analysis, in press.

Metric: Select this metric as follows:
(Metric "AdvancedKappaStatistic")

UseComplement: Bool to use the complement of the metric or not.
If true, the 1 - KappaStatistic is returned, which is useful since most optimizers search by default for a minimum.
(UseComplement "true")
The default value is true.

ForeGroundvalue: the overlap of structures with this value is calculated.
(ForeGroundvalue 3.5)
The default value is 1.0.

Metric: Select this metric as follows:
(Metric "AdvancedMattesMutualInformation")

NumberOfHistogramBins: The size of the histogram. Must be given for each resolution, or for all resolutions at once.
example: (NumberOfHistogramBins 32 32 64)
The default is 32 for each resolution.

NumberOfFixedHistogramBins: The size of the histogram in the fixed dimension. Can be given for each resolution, or for all resolutions at once. If not given, NumberOfHistogramBins is used.
example: (NumberOfFixedHistogramBins 32 32 64)
The default is the value of NumberOfHistogramBins, or, if that one is also not given, 32.

NumberOfMovingHistogramBins: The size of the histogram in the fixed dimension. Can be given for each resolution, or for all resolutions at once. If not given, NumberOfHistogramBins is used.
example: (NumberOfMovingHistogramBins 32 32 64)
The default is the value of NumberOfHistogramBins, or, if that one is also not given, 32.

FixedKernelBSplineOrder: The B-spline order of the Parzen window, used to estimate the joint histogram. Can be given for each resolution, or for all resolutions at once.
example: (FixedKernelBSplineOrder 0 1 1)
The default value is 0.

MovingKernelBSplineOrder: The B-spline order of the Parzen window, used to estimate the joint histogram. Can be given for each resolution, or for all resolutions at once.
example: (MovingKernelBSplineOrder 3 3 3)
The default value is 3.

FixedLimitRangeRatio: The relative extension of the intensity range of the fixed image.
If your fixed image has grey values from a to b and the FixedLimitRangeRatio is 0.001, the joint histogram will expect fixed image grey values from a-0.001(b-a) to b+0.001(b-a). This may be useful if you use high order B-spline interpolator for the fixed image.
example: (FixedLimitRangeRatio 0.001 0.01 0.01)
The default value is 0.01. Can be given for each resolution, or for all resolutions at once.

MovingLimitRangeRatio: The relative extension of the intensity range of the moving image.
If your moving image has grey values from a to b and the MovingLimitRangeRatio is 0.001, the joint histogram will expect moving image grey values from a-0.001(b-a) to b+0.001(b-a). This may be useful if you use high order B-spline interpolator for the moving image.
example: (MovingLimitRangeRatio 0.001 0.01 0.01)
The default value is 0.01. Can be given for each resolution, or for all resolutions at once.

FiniteDifferenceDerivative: Experimental feature, do not use.

UseFastAndLowMemoryVersion: Switch between a version of mutual information that explicitely computes the derivatives of the joint histogram to each transformation parameter (false) and a version that computes the mutual information via another route (true). The first option allocates a large 3D matrix of size: NumberOfFixedHistogramBins * NumberOfMovingHistogramBins * number of affected B-spline parameters. This method is faster for a low number of parameters. The second method does not use this huge matrix, and is therefore much more memory efficient for large images and fine B-spline grids. example: (UseFastAndLowMemoryVersion "false")
The default is "true".

Metric: Select this metric as follows:
(Metric "AdvancedMeanSquares")

UseNormalization: Bool to use normalization or not.
If true, the MeanSquares is divided by a factor (range/10)^2, where range represents the maximum gray value range of the images.
(UseNormalization "true")
The default value is false.

Metric: Select this metric as follows:
(Metric "AdvancedNormalizedCorrelation")

SubtractMean: Flag to set if the sample mean is subtracted from the sample values in the cross correlation formula. This typically results in narrower valleys in the cost function. Default value is true. Can be defined for each resolution
example: (SubtractMean "false")

Class elastix::AffineDTITransformElastix< TElastix >

Transform: Select this transform as follows:
(Transform "AffineDTITransform")

Scales: the scale factor for each parameter, used by the optimizer.
example: (Scales -1 -1 -1 100000000 -1 -1 -1 -1 -1 -1 -1 -1)
The scales work a bit different in this transformation, compared with the other transformations like the EulerTransform. By default, if no scales are supplied, the scales are estimated automatically. With the scales parameter, the user can override the automatically determined scales. Values smaller than or equal to 0 are ignored: the automatically estimated value is used for these parameters. Positive values override the automatically estimated scales. So, in the example above, the shear_x parameter is given a very large scale, which effectively turns off the optimization of that parameters. This might be useful in some MR-DTI application.

CenterOfRotation: an index around which the image is rotated.
example: (CenterOfRotation 128 128 90)
By default the CenterOfRotation is set to the geometric center of the image.

AutomaticTransformInitialization: whether or not the initial translation between images should be estimated as the distance between their centers.
example: (AutomaticTransformInitialization "true")
By default "false" is assumed. So, no initial translation.

Class elastix::BSplineInterpolator< TElastix >

Interpolator: Select this interpolator as follows:
(Interpolator "BSplineInterpolator")

BSplineInterpolationOrder: the order of the B-spline polynomial.
example: (BSplineInterpolationOrder 3 2 3)
The default order is 1. The parameter can be specified for each resolution.
If only given for one resolution, that value is used for the other resolutions as well.

Class elastix::BSplineInterpolatorFloat< TElastix >

Interpolator: Select this interpolator as follows:
(Interpolator "BSplineInterpolatorFloat")

BSplineInterpolationOrder: the order of the B-spline polynomial.
example: (BSplineInterpolationOrder 3 2 3)
The default order is 1. The parameter can be specified for each resolution.
If only given for one resolution, that value is used for the other resolutions as well.

Class elastix::BSplineResampleInterpolator< TElastix >

ResampleInterpolator: Select this resample interpolator as follows:
(ResampleInterpolator "FinalBSplineInterpolator")

FinalBSplineInterpolationOrder: the order of the B-spline used to resample the deformed moving image; possible values: (0-5)
example: (FinalBSplineInterpolationOrder 3)
Default: 3.

Class elastix::BSplineResampleInterpolatorFloat< TElastix >

ResampleInterpolator: Select this resample interpolator as follows:
(ResampleInterpolator "FinalBSplineInterpolatorFloat")

FinalBSplineInterpolationOrder: the order of the B-spline used to resample the deformed moving image; possible values: (0-5)
example: (FinalBSplineInterpolationOrder 3 )
Default: 3.

Class elastix::BSplineStackTransform< TElastix >

Transform: Select this transform as follows:
(Transform "BSplineStackTransform")

BSplineTransformSplineOrder: choose a B-spline order 1,2, or 3.
example: (BSplineTransformSplineOrder 3)
Default value: 3 (cubic B-splines).

FinalGridSpacingInVoxels: the grid spacing of the B-spline transform for each dimension.
example: (FinalGridSpacingInVoxels 8.0 8.0 8.0)
If only one argument is given, that factor is used for each dimension. The spacing is not in millimeters, but in "voxel size units". The default is 16.0 in every dimension.

FinalGridSpacingInPhysicalUnits: the grid spacing of the B-spline transform for each dimension.
example: (FinalGridSpacingInPhysicalUnits 8.0 8.0 8.0)
If only one argument is given, that factor is used for each dimension. The spacing is specified in millimeters. If not specified, the FinalGridSpacingInVoxels is used, or the FinalGridSpacing, to compute a FinalGridSpacingInPhysicalUnits. If those are not specified, the default value for FinalGridSpacingInVoxels is used to compute a FinalGridSpacingInPhysicalUnits. If an affine transformation is provided as initial transformation, the control grid will be scaled to cover the fixed image domain in the space defined by the initial transformation.

GridSpacingSchedule: the grid spacing downsampling factors for the B-spline transform for each dimension and each resolution.
example: (GridSpacingSchedule 4.0 4.0 2.0 2.0 1.0 1.0)
Which is an example for a 2D image, using 3 resolutions.
For convenience, you may also specify only one value for each resolution:
example: (GridSpacingSchedule 4.0 2.0 1.0 )
which is equivalent to the example above.

PassiveEdgeWidth: the width of a band of control points at the border of the B-spline coefficient image that should remain passive during optimisation.
Can be specified for each resolution.
example: (PassiveEdgeWidth 0 1 2)
The default is zero for all resolutions. A value of 4 will avoid all deformations at the edge of the image. Make sure that 2*PassiveEdgeWidth < ControlPointGridSize in each dimension.

Class elastix::BSplineTransformWithDiffusion< TElastix >

Transform: Select this transform as follows:
(Transform "BSplineTransformWithDiffusion")

FinalGridSpacing: the grid spacing of the B-spline transform part of this transform for each dimension.
example: (FinalGridSpacing 8.0 8.0 8.0) If only one argument is given, that factor is used for each dimension. The spacing is not in millimeters, but in "voxel size units". The default is 8.0 in every dimension.

UpsampleGridOption: whether or not the B-spline grid should be upsampled from one resolution level to another. Choose from {true, false}.
example: (UpsampleGridOption "true") The default is "true".

FilterPattern: defines according to what schedule/pattern the deformation field should be filtered. Choose from {1,2}, where FilterPattern 1 is diffusion every "DiffusionEachNIterations" iterations, and where FilterPattern 2 filters more frequent in the beginning and less frequent at the end of a resolution.
example: (FilterPattern 1) The default is filter pattern 1.

DiffusionEachNIterations: defines for FilterPattern 1 after how many iterations of the optimiser there should be a filtering step.
example: (DiffusionEachNIterations 5) The default is 1.

AfterIterations: defines for FilterPattern 2 after how many iterations of the optimiser the filter frequency should be increased.
example: (AfterIterations 100 200) The default is 50 and 100.

HowManyIterations: defines to what frequency the filtering should be increased.
example: (HowManyIterations 1 5 10) The default is 1, 5 and 10.

NumberOfDiffusionIterations: defines the number of times the adaptive filtering is performed.
example: (NumberOfDiffusionIterations 10) The default is 1.

example: (Radius 1) The default is 1.

ThresholdBool: defines whether or not the stiffness coefficient image should be thresholded. Choose from {true, false}.
example: (ThresholdBool "true") The default is "true".

ThresholdHU: if it is thresholded, this defines the threshold in Houndsfield units.
example: (ThresholdHU 150) The default is 150.

WriteDiffusionFiles: defines whether or not the stiffness coefficient image, the deformation field and the filtered field should be written to file. Choose from {true, false}.
example: (WriteDiffusionFiles "true") The default is "false".

GrayValueImageAlsoBasedOnFixedImage: defines whether or not the stiffness coefficient image should also be based on the fixed image. Choose from {true, false}.
example: (GrayValueImageAlsoBasedOnFixedImage "true") The default is "true".

UseFixedSegmentation: defines whether or not the stiffness coefficient image should be based on some prior defined segmentation of rigid structures in the fixed image, instead on a thresholding. Choose from {true, false}.
example: (UseFixedSegmentation "true") The default is "false".

FixedSegmentationFileName: the filename of this segmentation.
example: (FixedSegmentationFileName "somestring")

UseMovingSegmentation: defines whether or not the stiffness coefficient image should be based on some prior defined segmentation of rigid structures in the moving image, instead on a thresholding. Choose from {true, false}.
example: (UseMovingSegmentation "true") The default is "false".

MovingSegmentationFileName: the filename of this segmentation.
example: (MovingSegmentationFileName "somestring")

DefaultPixelValueForGVI: the default pixel value, when resampling the grayvalueimage. example: (DefaultPixelValueForGVI 0) The default is 0.

Class elastix::CMAEvolutionStrategy< TElastix >

Optimizer: Select this optimizer as follows:
(Optimizer "CMAEvolutionStrategy")

MaximumNumberOfIterations: The maximum number of iterations in each resolution.
example: (MaximumNumberOfIterations 100 100 50)
Default value: 500.

StepLength: Set the length of the initial step ( = Sigma0 = InitialSigma).
example: (StepLength 2.0 1.0 0.5)
Recommended value: 1/3 of the expected parameter range.
Default value: 1.0.

ValueTolerance: Stopping criterion. See the documentation of the itk::CMAEvolutionStrategyOptimizer for more information.
example: (ValueTolerance 0.001 0.0001 0.000001)
Default value: 0.00001. Can be specified for each resolution.

PositionToleranceMin: Stopping criterion. See the documentation of the itk::CMAEvolutionStrategyOptimizer for more information.
example: (PositionToleranceMin 0.001 0.0001 0.000001)
Default value: 1e-8. Can be specified for each resolution.

PositionToleranceMax: Stopping criterion. See the documentation of the itk::CMAEvolutionStrategyOptimizer for more information.
example: (PositionToleranceMax 0.001 0.0001 0.000001)
Default value: 1e8. Can be specified for each resolution.

PopulationSize: the number of parameter vectors evaluated in each iteration.
If you set it to 0, a default value is calculated by the optimizer, which is reported back to the elastix.log file.
example: (PopulationSize 0 20 20)
Default: 0 (so, automatically determined). Can be specified for each resolution.

NumberOfParents: the number of parameter vectors selected for recombination.
If you set it to 0, a default value is calculated by the optimizer, which is reported back to the elastix.log file.
example: (NumberOfParents 0 10 10)
Default: 0 (so, automatically determined). Can be specified for each resolution.
This value must be less than or equal to the PopulationSize.

MaximumDeviation: the step length is limited to this value. See the documentation of the itk::CMAEvolutionStrategyOptimizer for more information.
example: (MaximumDeviation 10.0 10.0 5.0)
Default: 10.0 * positionToleranceMax = practically infinity. Can be specified for each resolution.

MinimumDeviation: the step length is ensured to be greater than this value.
example: (MinimumDeviation 0.01 0.01 0.0001)
Default: 0.0. Can be specified for each resolution.

UseDecayingSigma: use a predefined decaying function to control the steplength sigma.
example: (UseDecayingSigma "false" "true" "false")
Default/recommended: "false". Can be specified for each resolution.
If you set it to true the SP_A and SP_alpha parameters apply.

SP_A: If UseDecayingSigma is set to "true", the steplength at each iteration is defined by:
.
where sigma(0) is set by the parameter "StepLength".
example: (SP_A 50.0 50.0 100.0)
The default value is 50.0. SP_A can be defined for each resolution.

SP_alpha: If UseDecayingSigma is set to "true", the steplength at each iteration is defined by:
.
where sigma(0) is set by the parameter "StepLength".
example: (SP_alpha 0.602 0.602 0.602)
The default value is 0.602. SP_alpha can be defined for each resolution.

UseCovarianceMatrixAdaptation: a boolean that determines whether to use the covariance matrix adaptation scheme.
example: (UseCovarianceMatrixAdaptation "false" "true" "true")
Default: "true". This parameter may be altered by the optimizer. The actual value used is
reported back in the elastix.log file. This parameter can be specified for each resolution.

RecombinationWeightsPreset: the name of a preset for the recombination weights.
example: (UseCovarianceMatrixAdaptation "equal" "linear" "superlinear")
Default/recommended: "superlinear". Choose one of {"equal", "linear", "superlinear"}. This parameter can be specified for each resolution.

UpdateBDPeriod: the number of iterations after which the eigendecomposition of the covariance matrix is updated. If 0, the optimizer estimates a value. The actual value used is reported back in the elastix.log file. This parameter can be specified for each resolution.
example: (UpdateBDPeriod 0 0 50)
Default: 0 (so, automatically determined).

Class elastix::Configuration
PrintErrorMessages: defines if warnings and errors should be printed to screen, e.g. when a parameter cannot be found and the default is used. example: (PrintErrorMessages "false")
Default: "true"

Optimizer: Select this optimizer as follows:
(Optimizer "ConjugateGradient")

GenerateLineSearchIterations: Whether line search iteration should be counted as elastix-iterations.
example: (GenerateLineSearchIterations "true")
Can only be specified for all resolutions at once.
Default value: "false".

MaximumNumberOfIterations: The maximum number of iterations in each resolution.
example: (MaximumNumberOfIterations 100 100 50)
Default value: 100.

MaximumNumberOfLineSearchIterations: The maximum number of iterations in each resolution.
example: (MaximumNumberOfIterations 10 10 5)
Default value: 10.

StepLength: Set the length of the initial step tried by the itk::MoreThuenteLineSearchOptimizer.
example: (StepLength 2.0 1.0 0.5)
Default value: 1.0.

LineSearchValueTolerance: Determine the Wolfe conditions that the itk::MoreThuenteLineSearchOptimizer tries to satisfy.
example: (LineSearchValueTolerance 0.0001 0.0001 0.0001)
Default value: 0.0001.

LineSearchGradientTolerance: Determine the Wolfe conditions that the itk::MoreThuenteLineSearchOptimizer tries to satisfy.
example: (LineSearchGradientTolerance 0.9 0.9 0.9)
Default value: 0.9.

example: (ValueTolerance 0.001 0.0001 0.000001)
Default value: 0.00001.

example: (GradientMagnitudeTolerance 0.001 0.0001 0.000001)
Default value: 0.000001.

ConjugateGradientType: a string that defines how 'beta' is computed in each resolution. The following methods are implemented: "SteepestDescent", "FletcherReeves", "PolakRibiere", "DaiYuan", "HestenesStiefel", and "DaiYuanHestenesStiefel". "SteepestDescent" simply sets beta=0. See the source code of the GenericConjugateGradientOptimizer for more information.
example: (ConjugateGradientType "FletcherReeves" "PolakRibiere")
Default value: "DaiYuanHestenesStiefel".

StopIfWolfeNotSatisfied: Whether to stop the optimisation if in one iteration the Wolfe conditions can not be satisfied by the itk::MoreThuenteLineSearchOptimizer.
In general it is wise to do so.
example: (StopIfWolfeNotSatisfied "true" "false")
Default value: "true".

Optimizer: Select this optimizer as follows:
(Optimizer "ConjugateGradientFRPR")

MaximumNumberOfIterations: The maximum number of iterations in each resolution.
example: (MaximumNumberOfIterations 100 100 50)
Default value: 100.

MaximumNumberOfLineSearchIterations: The maximum number of iterations in each resolution.
example: (MaximumNumberOfIterations 10 10 5)
Default value: 10.

StepLength: Set the length of the initial step tried by the line seach, used to bracket the minimum.
example: (StepLength 2.0 1.0 0.5)
Default value: 1.0.

ValueTolerance: Convergence is declared if:

LineSearchStepTolerance: Convergence of the line search is declared if:

Class elastix::CorrespondingPointsEuclideanDistanceMetric< TElastix >
Metric: Select this metric as follows:
(Metric "CorrespondingPointsEuclideanDistanceMetric")
Class elastix::DeformationFieldTransform< TElastix >
Transform: Select this transform as follows:
(Transform "DeformationFieldTransform")
Class elastix::DisplacementMagnitudePenalty< TElastix >
Metric: Select this metric as follows:
(Metric "DisplacementMagnitudePenalty")
Class elastix::DistancePreservingRigidityPenalty< TElastix >

Metric: Select this metric as follows:
(Metric "DistancePreservingRigidityPenalty")

SegmentedImageName: The file name of the image to specify the rigidity index of voxels in the fixed image. The image has only non-integer values as follows: 1) background: 0, 2) rigid region1: 1, 3) rigid region2: 2, and so on.

• example: (SegmentedImageName "BoneSegmentation.mhd")

PenaltyGridSpacingInVoxels: defines the grid spacing with which the rigidity penalty is calculated. In this current version, the grid spacing is set to be constant over different resolutions.

• In the publication above, the grid spacing was set as [4, 4, 1].
Class elastix::ElastixBase

RandomSeed: Sets a global seed for the random generator.
example: (RandomSeed 121212)
It must be a positive integer number. Default: 121212.

DefaultOutputPrecision: Set the default precision of floating values in the output. Most importantly, it affects the output precision of the parameters in the transform parameter file.
example: (DefaultOutputPrecision 6)
Default value: 6.

Class elastix::ElastixMain

FixedImageDimension: the dimension of the fixed image.
example: (FixedImageDimension 2)

MovingImageDimension: the dimension of the fixed image.
example: (MovingImageDimension 2)

FixedInternalImagePixelType: the pixel type of the internal fixed image representation. The fixed image is automatically converted to this type.
example: (FixedInternalImagePixelType "float")
Default/recommended: "float"

MovingInternalImagePixelType: the pixel type of the internal moving image representation. The moving image is automatically converted to this type.
example: (MovingInternalImagePixelType "float")
Default/recommended: "float"

Class elastix::ElastixTemplate< TFixedImage, TMovingImage >

WriteTransformParametersEachIteration: Controls whether to save a transform parameter file to disk in every iteration.
example: (WriteTransformParametersEachIteration "true")
This parameter can not be specified for each resolution separately. Default value: "false".

WriteTransformParametersEachResolution: Controls whether to save a transform parameter file to disk in every resolution.
example: (WriteTransformParametersEachResolution "true")
This parameter can not be specified for each resolution separately. Default value: "false".

UseDirectionCosines: Controls whether to use or ignore the direction cosines (world matrix, transform matrix) set in the images. Voxel spacing and image origin are always taken into account, regardless the setting of this parameter.
example: (UseDirectionCosines "true")
Default: true. Recommended: true. This parameter was introduced in elastix 4.3, with a default value of false for backward compabitility. From elastix 4.8 the default value has been changed to true. Setting it to false means that you choose to ignore important information from the image, which relates voxel coordinates to world coordinates. Ignoring it may easily lead to left/right swaps for example, which could skrew up a (medical) analysis.

Class elastix::EulerStackTransform< TElastix >

Transform: Select this transform as follows:
(Transform "EulerStackTransform")

Scales: the scale factor between the rotations and translations, used in the optimizer.
example: (Scales 200000.0)
example: (Scales 100000.0 60000.0 ... 80000.0)
If only one argument is given, that factor is used for the rotations. If more than one argument is given, then the number of arguments should be equal to the number of parameters: for each parameter its scale factor. If this parameter option is not used, by default the rotations are scaled by a factor of 100000.0. See also the AutomaticScalesEstimation parameter.

AutomaticScalesEstimation: if this parameter is set to "true" the Scales parameter is ignored and the scales are determined automatically.
example: ( AutomaticScalesEstimation "true" )
Default: "false" (for backwards compatibility). Recommended: "true".

CenterOfRotation: an index around which the image is rotated.
example: (CenterOfRotation 128 128)

Class elastix::EulerTransformElastix< TElastix >

Transform: Select this transform as follows:
(Transform "EulerTransform")

Scales: the scale factor between the rotations and translations, used in the optimizer.
example: (Scales 200000.0)
example: (Scales 100000.0 60000.0 ... 80000.0)
If only one argument is given, that factor is used for the rotations. If more than one argument is given, then the number of arguments should be equal to the number of parameters: for each parameter its scale factor. If this parameter option is not used, by default the rotations are scaled by a factor of 100000.0. See also the AutomaticScalesEstimation parameter.

AutomaticScalesEstimation: if this parameter is set to "true" the Scales parameter is ignored and the scales are determined automatically.
example: ( AutomaticScalesEstimation "true" )
Default: "false" (for backwards compatibility). Recommended: "true".

CenterOfRotation: an index around which the image is rotated.
example: (CenterOfRotation 128 128 90)
By default the CenterOfRotation is set to the geometric center of the image.

AutomaticTransformInitialization: whether or not the initial translation between images should be estimated as the distance between their centers.
example: (AutomaticTransformInitialization "true")
By default "false" is assumed. So, no initial translation.

AutomaticTransformInitializationMethod: how to initialize this transform. Should be one of {GeometricalCenter, CenterOfGravity}.
example: (AutomaticTransformInitializationMethod "CenterOfGravity")
By default "GeometricalCenter" is assumed.

Optimizer: Select this optimizer as follows:
(Optimizer "FiniteDifferenceGradientDescent")

MaximumNumberOfIterations: The maximum number of iterations in each resolution.
example: (MaximumNumberOfIterations 100 100 50)
Default value: 500.

SP_a: The gain at each iteration is defined by
.
SP_a can be defined for each resolution.
example: (SP_a 3200.0 3200.0 1600.0)
The default value is 400.0. Tuning this variable for you specific problem is recommended.

SP_A: The gain at each iteration is defined by
.
SP_A can be defined for each resolution.
example: (SP_A 50.0 50.0 100.0)
The default/recommended value is 50.0.

SP_alpha: The gain at each iteration is defined by
.
SP_alpha can be defined for each resolution.
example: (SP_alpha 0.602 0.602 0.602)
The default/recommended value is 0.602.

SP_c: The perturbation step size at each iteration is defined by
.
SP_c can be defined for each resolution.
example: (SP_c 2.0 1.0 1.0)
The default value is 1.0.

SP_gamma: The perturbation step size at each iteration is defined by
.
SP_gamma can be defined for each resolution.
example: (SP_gamma 0.101 0.101 0.101)
The default/recommended value is 0.101.

ShowMetricValues: Defines whether to compute/show the metric value in each iteration.
This flag can NOT be defined for each resolution.
example: (ShowMetricValues "true" )
Default value: "false". Note that turning this flag on increases computation time.

Class elastix::FixedGenericPyramid< TElastix >

FixedImagePyramid: Select this pyramid as follows:
(FixedImagePyramid "FixedGenericImagePyramid")

FixedImagePyramidRescaleSchedule: downsampling factors for the fixed image pyramid.
For each dimension, for each resolution level, the downsampling factor of the fixed image can be specified.
Syntax for 2D images:
(FixedImagePyramidRescaleSchedule <reslevel0,dim0> <reslevel0,dim1> <reslevel1,dim0> <reslevel1,dim1> ...)
example: (FixedImagePyramidRescaleSchedule 4 4 2 2 1 1)
Default: isotropic, halved in each resolution, so, like in the example. If ImagePyramidRescaleSchedule is specified, that schedule is used for both fixed and moving image pyramid.

ImagePyramidRescaleSchedule: rescale schedule for both pyramids

ImagePyramidSchedule: same as ImagePyramidRescaleSchedule

FixedImagePyramidSchedule: same as FixedImagePyramidRescaleSchedule

FixedImagePyramidSmoothingSchedule: sigma's for smoothing the fixed image pyramid.
For each dimension, for each resolution level, the sigma of the fixed image can be specified.
Syntax for 2D images:
(FixedImagePyramidSmoothingSchedule <reslevel0,dim0> <reslevel0,dim1> <reslevel1,dim0> <reslevel1,dim1> ...)
example: (FixedImagePyramidSmoothingSchedule 4 4 2 2 1 1)
Default: 0.5 x rescale_factor x fixed_image_spacing.
If ImagePyramidSmoothingSchedule is specified, that schedule is used for both fixed and moving image pyramid.

ImagePyramidSmoothingSchedule: smoothing schedule for both pyramids

ComputePyramidImagesPerResolution: Flag to specify if all resolution levels are computed at once, or per resolution. Latter saves memory.
example: (ComputePyramidImagesPerResolution "true")
Default false.

ImagePyramidUseShrinkImageFilter: Flag to specify if the ShrinkingImageFilter is used for rescaling the image, or the ResampleImageFilter. Skrinker is faster.
example: (ImagePyramidUseShrinkImageFilter "true")
Default false, so by default the resampler is used.

Class elastix::FixedImagePyramidBase< TElastix >

FixedImagePyramidSchedule: downsampling factors for the fixed image pyramid.
For each dimension, for each resolution level, the downsampling factor of the fixed image can be specified.
Syntax for 2D images:
(FixedImagePyramidSchedule <reslevel0,dim0> <reslevel0,dim1> <reslevel1,dim0> <reslevel1,dim1> ...)
example: (FixedImagePyramidSchedule 4 4 2 2 1 1)
Default: isotropic, halved in each resolution, so, like in the example. If ImagePyramidSchedule is specified, that schedule is used for both fixed and moving image pyramid.

ImagePyramidSchedule: downsampling factors for fixed and moving image pyramids.
example: (ImagePyramidSchedule 4 4 2 2 1 1)
Used as a default when FixedImagePyramidSchedule is not specified. If both are omitted, a default schedule is assumed: isotropic, halved in each resolution, so, like in the example.

WritePyramidImagesAfterEachResolution: ...
example: (WritePyramidImagesAfterEachResolution "true")
default "false".

Class elastix::FixedRecursivePyramid< TElastix >
FixedImagePyramid: Select this pyramid as follows:
(FixedImagePyramid "FixedRecursiveImagePyramid")
Class elastix::FixedShrinkingPyramid< TElastix >
FixedImagePyramid: Select this pyramid as follows:
(FixedImagePyramid "FixedShrinkingImagePyramid")
Class elastix::FixedSmoothingPyramid< TElastix >
FixedImagePyramid: Select this pyramid as follows:
(FixedImagePyramid "FixedSmoothingImagePyramid")
Class elastix::FullSampler< TElastix >
ImageSampler: Select this image sampler as follows:
(ImageSampler "Full")
Class elastix::FullSearch< TElastix >

Optimizer: Select this optimizer as follows:
(Optimizer "FullSearch")

FullSearchSpace<r>: Defines for resolution r a range of parameters to scan.
Full syntax: (FullSearchSpace<r> <parameter_name> <parameter_nr> <min> <max> <stepsize> [...] )
example: (FullSearchSpace0 "translation_x" 2 -4.0 3.0 1.0 "rotation_y" 3 -1.0 1.0 0.5)
This varies the second transform parameter in the range [-4.0 3.0] with steps of 1.0 and the third parameter in the range [-1.0 1.0] with steps of 0.5. The names are used as column headers in the screen output.

Class elastix::GridSampler< TElastix >

ImageSampler: Select this image sampler as follows:
(ImageSampler "Grid")

SampleGridSpacing: Defines the sampling grid in case of a Grid ImageSampler.
An integer downsampling factor must be specified for each dimension, for each resolution.
example: (SampleGridSpacing 4 4 2 2)
Default is 2 for each dimension for each resolution.

Class elastix::KNNGraphAlphaMutualInformationMetric< TElastix >

Metric: Select this metric as follows:
(Metric "KNNGraphAlphaMutualInformation")

Alpha: since this metric calculates alpha - mutual information.
(Alpha 0.5)
Choose a value between 0.0 and 1.0. The default is 0.5.

TreeType: The type of the kNN binary tree.
(TreeType "BDTree" "BruteForceTree")
Choose one of { KDTree, BDTree, BruteForceTree }.
The default is "KDTree" for all resolutions.

BucketSize: The maximum number of samples in one bucket.
This parameter influences the calculation time only, and is not appropiate for the BruteForceTree.
(BucketSize 5 100 50)
The default is 50 for all resolutions.

SplittingRule: This rule defines how the feature space is split.
(SplittingRule "ANN_KD_STD" "ANN_KD_FAIR")
Choose one of { ANN_KD_STD, ANN_KD_MIDPT, ANN_KD_SL_MIDPT, ANN_KD_FAIR, ANN_KD_SL_FAIR, ANN_KD_SUGGEST }
The default is "ANN_KD_SL_MIDPT" for all resolutions.

ShrinkingRule: This rule defines how the feature space is shrinked.
(ShrinkingRule "ANN_BD_CENTROID" "ANN_BD_NONE")
Choose one of { ANN_BD_NONE, ANN_BD_SIMPLE, ANN_BD_CENTROID, ANN_BD_SUGGEST }
The default is "ANN_BD_SIMPLE" for all resolutions.

TreeSearchType: The type of the binary tree searcher.
(TreeSearchType "Standard" "FixedRadius")
Choose one of { Standard, FixedRadius, Priority }
The default is "Standard" for all resolutions.

KNearestNeighbours: The number of nearest neighbours to be searched.
(KNearestNeighbours 50 20 35)
The default is 20 for all resolutions.

ErrorBound: error accepted in finding the nearest neighbours.
An ErrorBound of 0.0 equals exact searching, higher error bounds should result in smaller computation times.
(ErrorBound 32.0 8.0 0.0)
The default is 0.0 for all resolutions.

SquaredSearchRadius: the radius of the sphere where there is searched for neighbours.
This option is only appropiate for FixedRadius search.
(SquaredSearchRadius 32.0 8.0 8.0)
The default is 0.0 for all resolutions, which means no radius.

AvoidDivisionBy: a small number to avoid division by zero in the implentation.
(AvoidDivisionBy 0.000000001)
The default is 1e-5.

Class elastix::LinearInterpolator< TElastix >
Interpolator: Select this interpolator as follows:
(Interpolator "LinearInterpolator")
Class elastix::LinearResampleInterpolator< TElastix >
ResampleInterpolator: Select this resample interpolator as follows:
(ResampleInterpolator "FinalLinearInterpolator")
Class elastix::MetricBase< TElastix >

ShowExactMetricValue: Flag that can set to "true" or "false". If "true" the metric computes the exact metric value (computed on all voxels rather than on the set of spatial samples) and shows it each iteration. Must be given for each resolution.
example: (ShowExactMetricValue "true" "true" "false")
Default is "false" for all resolutions.

ExactMetricSampleGridSpacing: Set an integer downsampling rate for computing the "exact" metric. Only meaningful if set in combination with the ShowExactMetricValue set to "true". In some cases, it might be an overkill to really compute the exact metric with the ShowExactMetricValue. The metric computed on a downsampled image might already be accurate enough to draw conclusions about the rate of convergence for example. The downsampling rate must be given for each resolution, for each dimension.
example: (ExactMetricSampleGridSpacing 1 1 2 2 )
This example for a 2D registration of 2 resolutions sets the downsampling rate to 1 in the first resolution (so: use really all pixels), and to 2 in the second resolution. Default: 1 in each resolution and each dimension.

CheckNumberOfSamples: Whether the metric checks if at least a certain fraction (default 1/4) of the samples map inside the moving image. Can be given for each resolution or for all resolutions at once.
example: (CheckNumberOfSamples "false" "true" "false")
The default is true. In general it is wise to set this to true, since it detects if the registration is going really bad.

RequiredRatioOfValidSamples: Defines the fraction needed in CheckNumberOfSamples.
example: (RequiredRatioOfValidSamples 0.1)
The default is 0.25.

Class elastix::MissingStructurePenalty< TElastix >

Metric: Select this metric as follows:
(Metric "MissingStructurePenalty")

(WriteResultMeshAfterEachIteration "True")

(WriteResultMeshAfterEachResolution "True") The command-line options for input meshes is: -fmesh<[A-Z]><MetricNumber>.

Class elastix::MovingGenericPyramid< TElastix >

MovingImagePyramid: Select this pyramid as follows:
(MovingImagePyramid "MovingGenericImagePyramid")

MovingImagePyramidRescaleSchedule: downsampling factors for the moving image pyramid.
For each dimension, for each resolution level, the downsampling factor of the moving image can be specified.
Syntax for 2D images:
(MovingImagePyramidRescaleSchedule <reslevel0,dim0> <reslevel0,dim1> <reslevel1,dim0> <reslevel1,dim1> ...)
example: (MovingImagePyramidRescaleSchedule 4 4 2 2 1 1)
Default: isotropic, halved in each resolution, so, like in the example. If ImagePyramidRescaleSchedule is specified, that schedule is used for both moving and moving image pyramid.

ImagePyramidRescaleSchedule: rescale schedule for both pyramids

ImagePyramidSchedule: same as ImagePyramidRescaleSchedule

MovingImagePyramidSchedule: same as MovingImagePyramidRescaleSchedule

MovingImagePyramidSmoothingSchedule: sigma's for smoothing the moving image pyramid.
For each dimension, for each resolution level, the sigma of the moving image can be specified.
Syntax for 2D images:
(MovingImagePyramidSmoothingSchedule <reslevel0,dim0> <reslevel0,dim1> <reslevel1,dim0> <reslevel1,dim1> ...)
example: (MovingImagePyramidSmoothingSchedule 4 4 2 2 1 1)
Default: 0.5 x rescale_factor x moving_image_spacing.
If ImagePyramidSmoothingSchedule is specified, that schedule is used for both moving and moving image pyramid.

ImagePyramidSmoothingSchedule: smoothing schedule for both pyramids

ComputePyramidImagesPerResolution: Flag to specify if all resolution levels are computed at once, or per resolution. Latter saves memory.
example: (ComputePyramidImagesPerResolution "true")
Default false.

ImagePyramidUseShrinkImageFilter: Flag to specify if the ShrinkingImageFilter is used for rescaling the image, or the ResampleImageFilter. Shrinker is faster.
example: (ImagePyramidUseShrinkImageFilter "true")
Default false, so by default the resampler is used.

Class elastix::MovingImagePyramidBase< TElastix >

MovingImagePyramidSchedule: downsampling factors for the image pyramid.
For each dimension, for each resolution level, the downsampling factor of the moving image can be specified.
Syntax for 2D images:
(MovingImagePyramidSchedule <reslevel0,dim0> <reslevel0,dim1> <reslevel1,dim0> <reslevel1,dim1> ...) example: (MovingImagePyramidSchedule 4 4 2 2 1 1)
Default: isotropic, halved in each resolution, so, like in the example. If ImagePyramidSchedule is specified, that schedule is used for both fixed and moving image pyramid.

ImagePyramidSchedule: downsampling factors for fixed and moving image pyramids.
example: (ImagePyramidSchedule 4 4 2 2 1 1)
Used as a default when MovingImagePyramidSchedule is not specified. If both are omitted, a default schedule is assumed: isotropic, halved in each resolution, so, like in the example.

WritePyramidImagesAfterEachResolution: ...
example: (WritePyramidImagesAfterEachResolution "true")
default "false".

Class elastix::MovingRecursivePyramid< TElastix >
MovingImagePyramid: Select this pyramid as follows:
(MovingImagePyramid "MovingRecursiveImagePyramid")
Class elastix::MovingShrinkingPyramid< TElastix >
FixedImagePyramid: Select this pyramid as follows:
(MovingImagePyramid "MovingShrinkingImagePyramid")
Class elastix::MovingSmoothingPyramid< TElastix >
MovingImagePyramid: Select this pyramid as follows:
(MovingImagePyramid "MovingSmoothingImagePyramid")
Class elastix::MultiBSplineTransformWithNormal< TElastix >

Transform: Select this transform as follows:
(Transform "MultiBSplineTransformWithNormal")

BSplineTransformSplineOrder: choose a B-spline order 1,2, or 3.
example: (BSplineTransformSplineOrder 3)
Default value: 3 (cubic B-splines).

FinalGridSpacingInVoxels: the grid spacing of the B-spline transform for each dimension.
example: (FinalGridSpacingInVoxels 8.0 8.0 8.0)
If only one argument is given, that factor is used for each dimension. The spacing is not in millimeters, but in "voxel size units". The default is 16.0 in every dimension.

FinalGridSpacingInPhysicalUnits: the grid spacing of the B-spline transform for each dimension.
example: (FinalGridSpacingInPhysicalUnits 8.0 8.0 8.0)
If only one argument is given, that factor is used for each dimension. The spacing is specified in millimeters. If not specified, the FinalGridSpacingInVoxels is used, or the FinalGridSpacing, to compute a FinalGridSpacingInPhysicalUnits. If those are not specified, the default value for FinalGridSpacingInVoxels is used to compute a FinalGridSpacingInPhysicalUnits. If an affine transformation is provided as initial transformation, the control grid will be scaled to cover the fixed image domain in the space defined by the initial transformation.

GridSpacingSchedule: the grid spacing downsampling factors for the B-spline transform for each dimension and each resolution.
example: (GridSpacingSchedule 4.0 4.0 2.0 2.0 1.0 1.0)
Which is an example for a 2D image, using 3 resolutions.
For convenience, you may also specify only one value for each resolution:
example: (GridSpacingSchedule 4.0 2.0 1.0 )
which is equivalent to the example above.

Class elastix::MultiInputRandomCoordinateSampler< TElastix >

ImageSampler: Select this image sampler as follows:
(ImageSampler "MultiInputRandomCoordinate")

NumberOfSpatialSamples: The number of image voxels used for computing the metric value and its derivative in each iteration. Must be given for each resolution.
example: (NumberOfSpatialSamples 2048 2048 4000)
The default is 5000.

UseRandomSampleRegion: Defines whether to randomly select a subregion of the image in each iteration. When set to "true", also specify the SampleRegionSize. By setting this option to "true", in combination with the NewSamplesEveryIteration parameter, a "localised" similarity measure is obtained. This can give better performance in case of the presence of large inhomogeneities in the image, for example.
example: (UseRandomSampleRegion "true")
Default: false.

SampleRegionSize: the size of the subregions that are selected when using the UseRandomSampleRegion option. The size should be specified in mm, for each dimension. As a rule of thumb, you may try a value ~1/3 of the image size.
example: (SampleRegionSize 50.0 50.0 50.0)
You can also specify one number, which will be used for all dimensions. Also, you can specify different values for each resolution:
example: (SampleRegionSize 50.0 50.0 50.0 30.0 30.0 30.0)
In this example, in the first resolution 50mm is used for each of the 3 dimensions, and in the second resolution 30mm.
Default: sampleRegionSize[i] = min ( fixedImageSize[i], max_i ( fixedImageSize[i]/3 ) ), with fixedImageSize in mm. So, approximately 1/3 of the fixed image size.

FixedImageBSplineInterpolationOrder: When using a MultiInputRandomCoordinate sampler, the fixed image needs to be interpolated. This is done using a B-spline interpolator. With this option you can specify the order of interpolation.
example: (FixedImageBSplineInterpolationOrder 0 0 1)
Default value: 1. The parameter can be specified for each resolution.

Class elastix::MultiMetricMultiResolutionRegistration< TElastix >

UseRelativeWeights: Whether relative weights are used or simple static, fixed weights.
example: (UseRelativeWeights "false" "true")
The default is "false", which means using Metric<i>Weight.

Metric<i>Use: Whether the i-th metric is only computed or also used, in each resolution.
example: (Metric0Use "false" "true")
example: (Metric1Use "true" "false")
The default is "true".

Registration: Select this registration framework as follows:
(Registration "MultiMetricMultiResolutionRegistration")

NumberOfResolutions: the number of resolutions used.
example: (NumberOfResolutions 4)
The default is 3.

Metric<i>Weight: The weight for the i-th metric, in each resolution.
example: (Metric0Weight 0.5 0.5 0.8)
example: (Metric1Weight 0.5 0.5 0.2)
The default is 1 / numberOfMetrics.

Metric<i>RelativeWeight: The relative weight for the i-th metric, in each resolution.
This is an alternative to the default Metric<i>Weight and can be selected with the parameter UseRelativeWeights. The weight is computed in each iteration based on the magnitude of the metric derivative (gradient) related to that of the first metric . It is done such that the fraction is identical to , so

Class elastix::MultiResolutionRegistration< TElastix >

Registration: Select this registration framework as follows:
(Registration "MultiResolutionRegistration")

NumberOfResolutions: the number of resolutions used.
example: (NumberOfResolutions 4)
The default is 3.

Class elastix::MultiResolutionRegistrationWithFeatures< TElastix >

Registration: Select this registration framework as follows:
(Registration "MultiResolutionRegistrationWithFeatures")

NumberOfResolutions: the number of resolutions used.
example: (NumberOfResolutions 4)
The default is 3.

Metric<i>Weight: The weight for the i-th metric, in each resolution
example: (Metric0Weight 0.5 0.5 0.8)
example: (Metric1Weight 0.5 0.5 0.2)
The default is 1.0.

Class elastix::MyStandardResampler< TElastix >
Resampler: Select this resampler as follows:
(Resampler "DefaultResampler")
Class elastix::NearestNeighborInterpolator< TElastix >
Interpolator: Select this interpolator as follows:
(Interpolator "NearestNeighborInterpolator")
Class elastix::NearestNeighborResampleInterpolator< TElastix >
ResampleInterpolator: Select this resample interpolator as follows:
(ResampleInterpolator "FinalNearestNeighborInterpolator")
Class elastix::NormalizedMutualInformationMetric< TElastix >

Metric: Select this metric as follows:
(Metric "NormalizedMutualInformation")

NumberOfHistogramBins: The size of the histogram. Must be given for each resolution, or for all resolutions at once.
example: (NumberOfHistogramBins 32 32 64)
The default is 32 for each resolution.

NumberOfFixedHistogramBins: The size of the histogram in the fixed dimension. Can be given for each resolution, or for all resolutions at once. If not given, NumberOfHistograms is used.
example: (NumberOfFixedHistogramBins 32 32 64)
The default is the value of NumberOfHistograms.

NumberOfMovingHistogramBins: The size of the histogram in the fixed dimension. Can be given for each resolution, or for all resolutions at once. If not given, NumberOfHistograms is used.
example: (NumberOfMovingHistogramBins 32 32 64)
The default is the value of NumberOfHistograms.

FixedKernelBSplineOrder: The B-spline order of the Parzen window, used to estimate the joint histogram. Can be given for each resolution, or for all resolutions at once.
example: (FixedKernelBSplineOrder 0 1 1)
The default value is 0.

MovingKernelBSplineOrder: The B-spline order of the Parzen window, used to estimate the joint histogram. Can be given for each resolution, or for all resolutions at once.
example: (MovingKernelBSplineOrder 3 3 3)
The default value is 3.

FixedLimitRangeRatio: The relative extension of the intensity range of the fixed image.
If your image has gray values from 0 to 1000 and the FixedLimitRangeRatio is 0.001, the joint histogram will expect fixed image gray values from -0.001 to 1000.001. This may be useful if you use high order B-spline interpolator for the fixed image.
example: (FixedLimitRangeRatio 0.001 0.01 0.01)
The default value is 0.01. Can be given for each resolution, or for all resolutions at once.

MovingLimitRangeRatio: The relative extension of the intensity range of the moving image.
If your image has gray values from 0 to 1000 and the MovingLimitRangeRatio is 0.001, the joint histogram will expect moving image gray values from -0.001 to 1000.001. This may be useful if you use high order B-spline interpolator for the moving image.
example: (MovingLimitRangeRatio 0.001 0.01 0.01)
The default value is 0.01. Can be given for each resolution, or for all resolutions at once.

Class elastix::OpenCLFixedGenericPyramid< TElastix >

Pyramid: Select this pyramid as follows:
(FixedImagePyramid "OpenCLFixedGenericImagePyramid")

Pyramid: Enable the OpenCL pyramid as follows:
(OpenCLFixedGenericImagePyramidUseOpenCL "true")

Class elastix::OpenCLMovingGenericPyramid< TElastix >

Pyramid: Select this pyramid as follows:
(MovingImagePyramid "OpenCLMovingGenericImagePyramid")

Pyramid: Enable the OpenCL pyramid as follows:
(OpenCLMovingGenericImagePyramidUseOpenCL "true")

Class elastix::OpenCLResampler< TElastix >

Resampler: Select this resampler as follows:
(Resampler "OpenCLResampler")

Resampler: Enable the OpenCL resampler as follows:
(OpenCLResamplerUseOpenCL "true")

Class elastix::OptimizerBase< TElastix >
NewSamplesEveryIteration: if this flag is set to "true" some optimizers ask the metric to select a new set of spatial samples in every iteration. This, if used in combination with the correct optimizer (such as the StandardGradientDescent), and ImageSampler (Random, RandomCoordinate, or RandomSparseMask), allows for a very low number of spatial samples (around 2000), even with large images and transforms with a large number of parameters.
Choose one from {"true", "false"} for every resolution.
example: (NewSamplesEveryIteration "true" "true" "true")
Default is "false" for every resolution.
Class elastix::PCAMetric2< TElastix >

SampleLastDimensionRandomly: randomly sample a number of time points to to compute the variance from. When set to "false", all time points are taken into account. When set to "true", a random number of time points is selected, which can be set with parameter NumSamplesLastDimension.

NumSamplesLastDimension: the number of random samples to take in the time time direction of the data when SampleLastDimensionRandomly is set to true.

SubtractMean: subtract the over time computed mean parameter value from each parameter. This should be used when registration is performed directly on the moving image, without using a fixed image. Possible values are "true" or "false".

NumEigenValues: number of eigenvalues used in the metric: sum(e) - e, where sum(e) is the sum of all eigenvalues and e is the sum of the first highest NumEigenValues eigenvalues.

Class elastix::PCAMetric< TElastix >

SampleLastDimensionRandomly: randomly sample a number of time points to to compute the variance from. When set to "false", all time points are taken into account. When set to "true", a random number of time points is selected, which can be set with parameter NumSamplesLastDimension.

NumSamplesLastDimension: the number of random samples to take in the time time direction of the data when SampleLastDimensionRandomly is set to true.

SubtractMean: subtract the over time computed mean parameter value from each parameter. This should be used when registration is performed directly on the moving image, without using a fixed image. Possible values are "true" or "false".

NumEigenValues: number of eigenvalues used in the metric: sum(e) - e, where sum(e) is the sum of all eigenvalues and e is the sum of the first highest NumEigenValues eigenvalues.

Metric: Select this metric as follows:
(Metric "PolydataDummyPenalty")

(WriteResultMeshAfterEachIteration "True")

(WriteResultMeshAfterEachResolution "True")

Optimizer: Select this optimizer as follows:
(Optimizer "PreconditionedGradientDescent")

MaximumNumberOfIterations: The maximum number of iterations in each resolution.
example: (MaximumNumberOfIterations 100 100 50)
Default/recommended value: 500.

MaximumNumberOfSamplingAttempts: The maximum number of sampling attempts. Sometimes not enough corresponding samples can be drawn, upon which an exception is thrown. With this parameter it is possible to try to draw another set of samples.
example: (MaximumNumberOfSamplingAttempts 10 15 10)
Default value: 0, i.e. just fail immediately, for backward compatibility.

SP_a: The gain at each iteration is defined by
.
SP_a can be defined for each resolution.
example: (SP_a 3200.0 3200.0 1600.0)
The default value is 400.0. Tuning this variable for you specific problem is recommended.

SP_A: The gain at each iteration is defined by
.
SP_A can be defined for each resolution.
example: (SP_A 50.0 50.0 100.0)
The default/recommended value is 50.0.

SP_alpha: The gain at each iteration is defined by
.
SP_alpha can be defined for each resolution.
example: (SP_alpha 0.602 0.602 0.602)
The default/recommended value is 0.602.

Optimizer: Select this optimizer as follows:
(Optimizer "PreconditionedStochasticGradientDescent")

MaximumNumberOfIterations: The maximum number of iterations in each resolution.
example: (MaximumNumberOfIterations 100 100 50)
Default/recommended value: 500. When you are in a hurry, you may go down to 250 for example. When you have plenty of time, and want to be absolutely sure of the best results, a setting of 2000 is reasonable. In general, 500 gives satisfactory results.

MaximumNumberOfSamplingAttempts: The maximum number of sampling attempts. Sometimes not enough corresponding samples can be drawn, upon which an exception is thrown. With this parameter it is possible to try to draw another set of samples.
example: (MaximumNumberOfSamplingAttempts 10 15 10)
Default value: 0, i.e. just fail immediately, for backward compatibility.

AutomaticParameterEstimation: When this parameter is set to "true", many other parameters are calculated automatically: SP_a, SP_alpha, SigmoidMax, SigmoidMin, and SigmoidScale. In the elastix.log file the actually chosen values for these parameters can be found.
example: (AutomaticParameterEstimation "true")
Default/recommended value: "true". The parameter can be specified for each resolution, or for all resolutions at once.

StepSizeStrategy: When this parameter is set to "true", the adaptive step size mechanism described in the documentation of itk::itkPreconditionedASGDOptimizer is used. The parameter can be specified for each resolution, or for all resolutions at once.
example: (StepSizeStrategy "Adaptive")
Default/recommend value: "Adaptive", because it makes the registration more robust. In case of using a RandomCoordinate sampler, with (UseRandomSampleRegion "true"), the adaptive step size mechanism is turned off, no matter the user setting.

MaximumStepLength: Also called . This parameter can be considered as the maximum voxel displacement between two iterations. The larger this parameter, the more aggressive the optimization. The parameter can be specified for each resolution, or for all resolutions at once.
example: (MaximumStepLength 1.0)
Default: mean voxel spacing of fixed and moving image. This seems to work well in general. This parameter only has influence when AutomaticParameterEstimation is used.

SP_a: The gain at each iteration is defined by
.
SP_a can be defined for each resolution.
example: (SP_a 3200.0 3200.0 1600.0)
The default value is 400.0. Tuning this variable for you specific problem is recommended. Alternatively set the AutomaticParameterEstimation to "true". In that case, you do not need to specify SP_a. SP_a has no influence when AutomaticParameterEstimation is used.

SP_A: The gain at each iteration is defined by
.
SP_A can be defined for each resolution.
example: (SP_A 50.0 50.0 100.0)
The default/recommended value for this particular optimizer is 20.0.

SP_alpha: The gain at each iteration is defined by
.
SP_alpha can be defined for each resolution.
example: (SP_alpha 0.602 0.602 0.602)
The default/recommended value for this particular optimizer is 1.0. Alternatively set the AutomaticParameterEstimation to "true". In that case, you do not need to specify SP_alpha. SP_alpha has no influence when AutomaticParameterEstimation is used.

SigmoidMax: The maximum of the sigmoid function ( ). Must be larger than 0. The parameter can be specified for each resolution, or for all resolutions at once.
example: (SigmoidMax 1.0)
Default/recommended value: 1.0. This parameter has no influence when AutomaticParameterEstimation is used. In that case, always a value 1.0 is used.

SigmoidMin: The minimum of the sigmoid function ( ). Must be smaller than 0. The parameter can be specified for each resolution, or for all resolutions at once.
example: (SigmoidMin -0.8)
Default value: -0.8. This parameter has no influence when AutomaticParameterEstimation is used. In that case, the value is automatically determined, depending on the images, metric etc.

SigmoidScale: The scale/width of the sigmoid function ( ). The parameter can be specified for each resolution, or for all resolutions at once.
example: (SigmoidScale 0.00001)
Default value: 1e-8. This parameter has no influence when AutomaticParameterEstimation is used. In that case, the value is automatically determined, depending on the images, metric etc.

SigmoidInitialTime: the initial time input for the sigmoid ( ). Must be larger than 0.0. The parameter can be specified for each resolution, or for all resolutions at once.
example: (SigmoidInitialTime 0.0 5.0 5.0)
Default value: 0.0. When increased, the optimization starts with smaller steps, leaving the possibility to increase the steps when necessary. If set to 0.0, the method starts with with the largest step allowed.

NumberOfGradientMeasurements: Number of gradients N to estimate the average square magnitudes of the exact gradient and the approximation error. The parameter can be specified for each resolution, or for all resolutions at once.
example: (NumberOfGradientMeasurements 10)
Default value: 0, which means that the value is automatically estimated. In principle, the more the better, but the slower. In practice N=10 is usually sufficient. But the automatic estimation achieved by N=0 also works good. The parameter has only influence when AutomaticParameterEstimation is used.

NumberOfJacobianMeasurements: The number of voxels M where the Jacobian is measured, which is used to estimate the covariance matrix. The parameter can be specified for each resolution, or for all resolutions at once.
example: (NumberOfJacobianMeasurements 5000 10000 20000)
Default value: M = max( 1000, nrofparams ), with nrofparams the number of transform parameters. This is a rather crude rule of thumb, which seems to work in practice. In principle, the more the better, but the slower. The parameter has only influence when AutomaticParameterEstimation is used.

NumberOfSamplesForNoiseCompensationFactor: The number of image samples used to compute the 'exact' gradient. The samples are chosen on a uniform grid. The parameter can be specified for each resolution, or for all resolutions at once.
example: (NumberOfSamplesForNoiseCompensationFactor 100000)
Default/recommended: 100000. This works in general. If the image is smaller, the number of samples is automatically reduced. In principle, the more the better, but the slower. The parameter has only influence when AutomaticParameterEstimation is used.

m_NumberOfSamplesForPrecondition: The number of image samples used to compute the gradient for preconditioner. The samples are chosen on a random sampler. The parameter can be specified for each resolution, or for all resolutions at once.
example: (NumberOfSamplesForPrecondition 500000)
Default/recommended: 500000. This works in general. If the image is smaller, the number of samples is automatically reduced. In principle, the more the better, but the slower. The parameter has only influence when AutomaticParameterEstimation is used.

RegularizationKappa: Selects for the preconditioner regularization. The parameter can be specified for each resolution, or for all resolutions at once.
example: (RegularizationKappa 0.9)

Class elastix::QuasiNewtonLBFGS< TElastix >

Optimizer: Select this optimizer as follows:
(Optimizer "QuasiNewtonLBFGS")

GenerateLineSearchIterations: Whether line search iteration should be counted as elastix-iterations.
example: (GenerateLineSearchIterations "true")
Can only be specified for all resolutions at once.
Default value: "false".

MaximumNumberOfIterations: The maximum number of iterations in each resolution.
example: (MaximumNumberOfIterations 100 100 50)
Default value: 100.

MaximumNumberOfLineSearchIterations: The maximum number of line search iterations in each resolution.
example: (MaximumNumberOfLineSearchIterations 10 10 5)
Default value: 20.

StepLength: Set the length of the initial step tried by the itk::MoreThuenteLineSearchOptimizer.
example: (StepLength 2.0 1.0 0.5)
Default value: 1.0.

LineSearchValueTolerance: Determine the Wolfe conditions that the itk::MoreThuenteLineSearchOptimizer tries to satisfy.
example: (LineSearchValueTolerance 0.0001 0.0001 0.0001)
Default value: 0.0001.

LineSearchGradientTolerance: Determine the Wolfe conditions that the itk::MoreThuenteLineSearchOptimizer tries to satisfy.
example: (LineSearchGradientTolerance 0.9 0.9 0.9)
Default value: 0.9.

example: (GradientMagnitudeTolerance 0.001 0.0001 0.000001)
Default value: 0.000001.

LBFGSUpdateAccuracy: The "memory" of the optimizer. This determines how many past iterations are used to construct the Hessian approximation. The higher, the more memory is used, but the better the Hessian approximation. If set to zero, The QuasiNewtonLBFGS equals a gradient descent method with line search.
example: (LBFGSUpdateAccuracy 5 10 20)
Default value: 5.

StopIfWolfeNotSatisfied: Whether to stop the optimisation if in one iteration the Wolfe conditions can not be satisfied by the itk::MoreThuenteLineSearchOptimizer.
In general it is wise to do so.
example: (StopIfWolfeNotSatisfied "true" "false")
Default value: "true".

Class elastix::RandomCoordinateSampler< TElastix >

ImageSampler: Select this image sampler as follows:
(ImageSampler "RandomCoordinate")

NumberOfSpatialSamples: The number of image voxels used for computing the metric value and its derivative in each iteration. Must be given for each resolution.
example: (NumberOfSpatialSamples 2048 2048 4000)
The default is 5000.

UseRandomSampleRegion: Defines whether to randomly select a subregion of the image in each iteration. When set to "true", also specify the SampleRegionSize. By setting this option to "true", in combination with the NewSamplesEveryIteration parameter, a "localised" similarity measure is obtained. This can give better performance in case of the presence of large inhomogeneities in the image, for example.
example: (UseRandomSampleRegion "true")
Default: false.

SampleRegionSize: the size of the subregions that are selected when using the UseRandomSampleRegion option. The size should be specified in mm, for each dimension. As a rule of thumb, you may try a value ~1/3 of the image size.
example: (SampleRegionSize 50.0 50.0 50.0)
You can also specify one number, which will be used for all dimensions. Also, you can specify different values for each resolution:
example: (SampleRegionSize 50.0 50.0 50.0 30.0 30.0 30.0)
In this example, in the first resolution 50mm is used for each of the 3 dimensions, and in the second resolution 30mm.
Default: sampleRegionSize[i] = min ( fixedImageSize[i], max_i ( fixedImageSize[i]/3 ) ), with fixedImageSize in mm. So, approximately 1/3 of the fixed image size.

FixedImageBSplineInterpolationOrder: When using a RandomCoordinate sampler, the fixed image needs to be interpolated. This is done using a B-spline interpolator. With this option you can specify the order of interpolation.
example: (FixedImageBSplineInterpolationOrder 0 0 1)
Default value: 1. The parameter can be specified for each resolution.

Class elastix::RandomSampler< TElastix >

ImageSampler: Select this image sampler as follows:
(ImageSampler "Random")

NumberOfSpatialSamples: The number of image voxels used for computing the metric value and its derivative in each iteration. Must be given for each resolution.
example: (NumberOfSpatialSamples 2048 2048 4000)
The default is 5000.

ImageSampler: Select this image sampler as follows:
(ImageSampler "RandomSparseMask")

NumberOfSpatialSamples: The number of image voxels used for computing the metric value and its derivative in each iteration. Must be given for each resolution.
example: (NumberOfSpatialSamples 2048 2048 4000)
The default is 5000.

Class elastix::RayCastInterpolator< TElastix >
Interpolator: Select this interpolator as follows:
(Interpolator "RayCastInterpolator")
Class elastix::RecursiveBSplineTransform< TElastix >

Transform: Select this transform as follows:
(Transform "RecursiveBSplineTransform")

BSplineTransformSplineOrder: choose a B-spline order 1,2, or 3.
example: (BSplineTransformSplineOrder 3)
Default value: 3 (cubic B-splines).

FinalGridSpacingInVoxels: the grid spacing of the B-spline transform for each dimension.
example: (FinalGridSpacingInVoxels 8.0 8.0 8.0)
If only one argument is given, that factor is used for each dimension. The spacing is not in millimeters, but in "voxel size units". The default is 16.0 in every dimension.

FinalGridSpacingInPhysicalUnits: the grid spacing of the B-spline transform for each dimension.
example: (FinalGridSpacingInPhysicalUnits 8.0 8.0 8.0)
If only one argument is given, that factor is used for each dimension. The spacing is specified in millimeters. If not specified, the FinalGridSpacingInVoxels is used, or the FinalGridSpacing, to compute a FinalGridSpacingInPhysicalUnits. If those are not specified, the default value for FinalGridSpacingInVoxels is used to compute a FinalGridSpacingInPhysicalUnits. If an affine transformation is provided as initial transformation, the control grid will be scaled to cover the fixed image domain in the space defined by the initial transformation.

GridSpacingSchedule: the grid spacing downsampling factors for the B-spline transform for each dimension and each resolution.
example: (GridSpacingSchedule 4.0 4.0 2.0 2.0 1.0 1.0)
Which is an example for a 2D image, using 3 resolutions.
For convenience, you may also specify only one value for each resolution:
example: (GridSpacingSchedule 4.0 2.0 1.0 )
which is equivalent to the example above.

PassiveEdgeWidth: the width of a band of control points at the border of the B-spline coefficient image that should remain passive during optimisation.
Can be specified for each resolution.
example: (PassiveEdgeWidth 0 1 2)
The default is zero for all resolutions. A value of 4 will avoid all deformations at the edge of the image. Make sure that 2*PassiveEdgeWidth < ControlPointGridSize in each dimension.

UseCyclicTransform: use the cyclic version of the B-spline transform which ensures that the B-spline polynomials wrap around in the slowest varying dimension. This is useful for dynamic imaging data in which the motion is assumed to be cyclic, for example in ECG-gated or respiratory gated CTA. For more information see the paper: Nonrigid registration of dynamic medical imaging data using nD+t B-splines and a groupwise optimization approach, C.T. Metz, S. Klein, M. Schaap, T. van Walsum and W.J. Niessen, Medical Image Analysis, in press.

Class elastix::ReducedDimensionBSplineInterpolator< TElastix >

Interpolator: Select this interpolator as follows:
(Interpolator "ReducedDimensionBSplineInterpolator")

BSplineInterpolationOrder: the order of the B-spline polynomial.
example: (BSplineInterpolationOrder 1 1 1)
The default order is 1. The parameter can be specified for each resolution.
If only given for one resolution, that value is used for the other resolutions as well.
Currently only first order B-spline interpolation is supported.

Class elastix::ReducedDimensionBSplineResampleInterpolator< TElastix >

ResampleInterpolator: Select this resample interpolator as follows:
(ResampleInterpolator "FinalReducedDimensionBSplineInterpolator")

FinalReducedDimensionBSplineInterpolationOrder: the order of the B-spline used to resample the deformed moving image; possible values: (0-5)
example: (FinalReducedDimensionBSplineInterpolationOrder 3)
Default: 3.

Class elastix::RegistrationBase< TElastix >

ErodeMask: a flag to determine if the masks should be eroded from one resolution level to another. Choose from {"true", "false"}
example: (ErodeMask "false")
The default is "true". The parameter may be specified for each resolution differently, but that's not obliged. The actual amount of erosion depends on the image pyramid.
Erosion of the mask prevents the border / edge of the mask taken into account. This can be useful for example for ultrasound images, where you don't want to take into account values outside the US-beam, but where you also don't want to match the edge / border of this beam. For example for MRI's of the head, the borders of the head may be wanted to match, and there erosion should be avoided.

ErodeFixedMask: a flag to determine if the fixed mask(s) should be eroded from one resolution level to another. Choose from {"true", "false"}
example: (ErodeFixedMask "true" "false") This setting overrules ErodeMask.

ErodeMovingMask: a flag to determine if the moving mask(s) should be eroded from one resolution level to another. Choose from {"true", "false"}
example: (ErodeMovingMask "true" "false") This setting overrules ErodeMask.

ErodeFixedMask<i>: a flag to determine if the i-th fixed mask should be eroded from one resolution level to another. Choose from {"true", "false"}
example: (ErodeFixedMask2 "true" "false") This setting overrules ErodeMask and ErodeFixedMask.

ErodeMovingMask<i>: a flag to determine if the i-th moving mask should be eroded from one resolution level to another. Choose from {"true", "false"}
example: (ErodeMovingMask2 "true" "false") This setting overrules ErodeMask and ErodeMovingMask.

Optimizer: Select this optimizer as follows:
(Optimizer "RegularStepGradientDescent")

MaximumNumberOfIterations: the maximum number of iterations in each resolution.
example: (MaximumNumberOfIterations 100 100 50)
Default value: 500.

MinimumGradientMagnitude: stopping criterion. If the magnitude of the derivative of the cost function is below this value, optimisation is stopped.
example: (MinimumGradientMagnitude 0.0001 0.0001 0.001)
Default value: 1e-8.

MinimumStepLength: stopping criterion. If the steplength is below this value, optimisation is stopped.
example: (MinimumStepLength 1.0 0.5 0.1)
Default value: 0.5 / 2^resolutionlevel

MaximumStepLength: the starting steplength.
example: (MaximumStepLength 16.0 8.0 4.0)
Default value: 16 / 2^resolutionlevel.

RelaxationFactor: the factor with which the steplength is multiplied, if the optimiser notices that a smaller steplength is needed.
example: (RelaxationFactor 0.5 0.5 0.8 ).
Default/recommended value: 0.5.

Class elastix::RSGDEachParameterApart< TElastix >

Optimizer: Select this optimizer as follows:
(Optimizer "RSGDEachParameterApart")

MaximumNumberOfIterations: the maximum number of iterations in each resolution.
example: (MaximumNumberOfIterations 100 100 50)
Default value: 100.

MinimumGradientMagnitude: stopping criterion. If the magnitude of the derivative of the cost function is below this value, optimisation is stopped.
example: (MinimumGradientMagnitude 0.0001 0.0001 0.001)
Default value: 1e-8.

MinimumStepLength: stopping criterion. If the steplength is below this value, optimisation is stopped.
example: (MinimumStepLength 1.0 0.5 0.1)
Default value: 0.5 / 2^resolutionlevel

MaximumStepLength: the starting steplength.
example: (MaxiumStepLength 16.0 8.0 4.0)
Default value: 16 / 2^resolutionlevel.

Class elastix::SimilarityTransformElastix< TElastix >

Transform: Select this transform as follows:
(Transform "SimilarityTransform")

Scales: the scale factor between the rotations, translations, and the isotropic scaling, used in the optimizer.
example: (Scales 100000.0 60000.0 ... 80000.0)
With this transform, the number of arguments should be equal to the number of parameters: for each parameter its scale factor. If this parameter option is not used, by default the rotations are scaled by a factor of 100000.0 and the scale by a factor 10000.0. These are rather arbitrary values. See also the AutomaticScalesEstimation parameter. See also the comment in the documentation of SimilarityTransformElastix about the order of the parameters in 2D and 3D.

AutomaticScalesEstimation: if this parameter is set to "true" the Scales parameter is ignored and the scales are determined automatically.
example: ( AutomaticScalesEstimation "true" )
Default: "false" (for backwards compatibility). Recommended: "true".

CenterOfRotation: an index around which the image is rotated.
example: (CenterOfRotation 128 128 90)
By default the CenterOfRotation is set to the geometric center of the image.

AutomaticTransformInitialization: whether or not the initial translation between images should be estimated as the distance between their centers.
example: (AutomaticTransformInitialization "true")
By default "false" is assumed. So, no initial translation.

AutomaticTransformInitializationMethod: how to initialize this transform. Should be one of {GeometricalCenter, CenterOfGravity}.
example: (AutomaticTransformInitializationMethod "CenterOfGravity")
By default "GeometricalCenter" is assumed.

Class elastix::SimultaneousPerturbation< TElastix >

Optimizer: Select this optimizer as follows:
(Optimizer "SimultaneousPerturbation")

MaximumNumberOfIterations: The maximum number of iterations in each resolution.
example: (MaximumNumberOfIterations 100 100 50)
Default value: 500.

NumberOfPerturbations: The number of perturbation used to construct a gradient estimate .
NumberOfPerturbations

This parameter can be defined for each resolution.
example: (NumberOfPerturbations 1 1 2)
Default value: 1.

SP_a: The gain at each iteration is defined by
.
SP_a can be defined for each resolution.
example: (SP_a 3200.0 3200.0 1600.0)
The default value is 400.0. Tuning this variable for you specific problem is recommended.

SP_A: The gain at each iteration is defined by
.
SP_A can be defined for each resolution.
example: (SP_A 50.0 50.0 100.0)
The default/recommended value is 50.0.

SP_alpha: The gain at each iteration is defined by
.
SP_alpha can be defined for each resolution.
example: (SP_alpha 0.602 0.602 0.602)
The default/recommended value is 0.602.

SP_c: The perturbation step size at each iteration is defined by
.
SP_c can be defined for each resolution.
example: (SP_c 2.0 1.0 1.0)
The default value is 1.0.

SP_gamma: The perturbation step size at each iteration is defined by
.
SP_gamma can be defined for each resolution.
example: (SP_gamma 0.101 0.101 0.101)
The default/recommended value is 0.101.

ShowMetricValues: Defines whether to compute/show the metric value in each iteration.
This flag can NOT be defined for each resolution.
example: (ShowMetricValues "true" )
Default value: "false". Note that turning this flag on increases computation time.

Class elastix::SplineKernelTransform< TElastix >

Transform: Select this transform as follows:
(Transform "SplineKernelTransform")

SplineKernelType: Select the deformation model, which must be one of { ThinPlateSpline, ThinPlateR2LogRSpline, VolumeSpline, ElasticBodySpline, ElasticBodyReciprocalSpline). In 2D this option is ignored and a ThinPlateSpline will always be used.
example: (SplineKernelType "ElasticBodySpline")
Default: ThinPlateSpline. You cannot specify this parameter for each resolution differently.

SplineRelaxationFactor: make the spline interpolating or approximating. A value of 0.0 gives an interpolating transform. Higher values result in approximating splines.
example: (SplineRelaxationFactor 0.01 )
Default: 0.0. You cannot specify this parameter for each resolution differently.

SplinePoissonRatio: Set the poisson ratio for the ElasticBodySpline and the ElastixBodyReciprocalSpline. For other SplineKernelTypes this parameters is ignored.
example: (SplinePoissonRatio 0.3 )
Default: 0.3. You cannot specify this parameter for each resolution differently.
Valid values are withing -1.0 and 0.5. 0.5 means incompressible. Negative values are a bit odd, but possible. See Wikipedia on PoissonRatio.

Optimizer: Select this optimizer as follows:
(Optimizer "StandardGradientDescent")

MaximumNumberOfIterations: The maximum number of iterations in each resolution.
example: (MaximumNumberOfIterations 100 100 50)
Default/recommended value: 500.

MaximumNumberOfSamplingAttempts: The maximum number of sampling attempts. Sometimes not enough corresponding samples can be drawn, upon which an exception is thrown. With this parameter it is possible to try to draw another set of samples.
example: (MaximumNumberOfSamplingAttempts 10 15 10)
Default value: 0, i.e. just fail immediately, for backward compatibility.

SP_a: The gain at each iteration is defined by
.
SP_a can be defined for each resolution.
example: (SP_a 3200.0 3200.0 1600.0)
The default value is 400.0. Tuning this variable for you specific problem is recommended.

SP_A: The gain at each iteration is defined by
.
SP_A can be defined for each resolution.
example: (SP_A 50.0 50.0 100.0)
The default/recommended value is 50.0.

SP_alpha: The gain at each iteration is defined by
.
SP_alpha can be defined for each resolution.
example: (SP_alpha 0.602 0.602 0.602)
The default/recommended value is 0.602.

Class elastix::StatisticalShapePenalty< TElastix >

Metric: Select this metric as follows:
(Metric "StatisticalShapePenalty")

ShrinkageIntensity: The mixing ratio ($\beta$) of the provided covariance matrix and an identity matrix. $\Sigma' = (1-\beta)\Sigma + \beta \sigma_0^2 I$ Can be defined for each resolution
example: (ShrinkageIntensity 0.2)

BaseVariance: The width ($\sigma_0^2$) of the non-informative prior. Can be defined for each resolution
example: (BaseVariance 1000.0)

Class elastix::SumOfPairwiseCorrelationCoefficientsMetric< TElastix >

SampleLastDimensionRandomly: randomly sample a number of time points to to compute the variance from. When set to "false", all time points are taken into account. When set to "true", a random number of time points is selected, which can be set with parameter NumSamplesLastDimension.

NumSamplesLastDimension: the number of random samples to take in the time time direction of the data when SampleLastDimensionRandomly is set to true.

SubtractMean: subtract the over time computed mean parameter value from each parameter. This should be used when registration is performed directly on the moving image, without using a fixed image. Possible values are "true" or "false".

Class elastix::SumSquaredTissueVolumeDifferenceMetric< TElastix >

Metric: Select this metric as follows:
(Metric "SumSquaredTissueVolumeDifference")

AirValue: Intensity value of air.
example: (AirValue -1000.0)
Default is -1000.0.

TissueValue: Intensity value of tissue.
example: (TissueValue 55.0)
Default is 55.0.

Class elastix::TransformBase< TElastix >
HowToCombineTransforms: Indicates how to use the initial transform
(given by the command-line argument -t0, or, if using multiple parameter files, by the result of registration using the previous parameter file). Possible options are "Add" and "Compose".
"Add" combines the initial transform and the current transform (which is currently optimized) by addition: ;
"Compose" by composition: .
example: (HowToCombineTransforms "Add")
Class elastix::TransformBendingEnergyPenalty< TElastix >
Metric: Select this metric as follows:
(Metric "TransformBendingEnergyPenalty")
Class elastix::TransformRigidityPenalty< TElastix >

Metric: Select this metric as follows:
(Metric "TransformRigidityPenalty")

LinearityConditionWeight: A parameter to weigh the linearity condition term of the rigidity term.
example: (LinearityConditionWeight 2.0)
Default is 1.0.

OrthonormalityConditionWeight: A parameter to weigh the orthonormality condition term of the rigidity term.
example: (OrthonormalityConditionWeight 2.0)
Default is 1.0.

PropernessConditionWeight: A parameter to weigh the properness condition term of the rigidity term.
example: (PropernessConditionWeight 2.0)
Default is 1.0.

UseLinearityCondition: A flag to specify the usage of the linearity condition term for optimisation.
example: (UseLinearityCondition "false")
Default is "true".

UseOrthonormalityCondition: A flag to specify the usage of the orthonormality condition term for optimisation.
example: (UseOrthonormalityCondition "false")
Default is "true".

UsePropernessCondition: A flag to specify the usage of the properness condition term for optimisation.
example: (UsePropernessCondition "false")
Default is "true".

CalculateLinearityCondition: A flag to specify if the linearity condition should still be calculated, even if it is not used for optimisation.
example: (CalculateLinearityCondition "false")
Default is "true".

CalculateOrthonormalityCondition: A flag to specify if the orthonormality condition should still be calculated, even if it is not used for optimisation.
example: (CalculateOrthonormalityCondition "false")
Default is "true".

CalculatePropernessCondition: A flag to specify if the properness condition should still be calculated, even if it is not used for optimisation.
example: (CalculatePropernessCondition "false")
Default is "true".

FixedRigidityImageName: the name of a coefficient image to specify the rigidity index of voxels in the fixed image.
example: (FixedRigidityImageName "fixedRigidityImage.mhd")
If not supplied the rigidity coefficient is not based on the fixed image, which is recommended.
If neither FixedRigidityImageName nor MovingRigidityImageName are supplied, the rigidity penalty term is evaluated on the whole transform input domain.

MovingRigidityImageName: the name of a coefficient image to specify the rigidity index of voxels in the moving image.
example: (MovingRigidityImageName "movingRigidityImage.mhd")
If not supplied the rigidity coefficient is not based on the moving image, which is NOT recommended.
If neither FixedRigidityImageName nor MovingRigidityImageName are supplied, the rigidity penalty term is evaluated on the whole transform input domain.

DilateRigidityImages: flag to specify the dilation of the rigidity coefficient images. With this the region of rigidity can be extended to force rigidity of the inner region.
example: (DilateRigidityImages "false" "false" "true")
Default is "true".

DilationRadiusMultiplier: the dilation radius is a multiplier times the grid spacing of the B-spline transform.
example: (DilationRadiusMultiplier 1.0 1.0 2.0)
Default is 1.0.

Class elastix::TranslationTransformElastix< TElastix >

Transform: Select this transform as follows:
(Transform "TranslationTransform")

AutomaticTransformInitialization: whether or not the initial translation between images should be estimated as the distance between their centers.
example: (AutomaticTransformInitialization "true")
By default "false" is assumed. So, no initial translation.

AutomaticTransformInitializationMethod: how to initialize this transform. Should be one of {GeometricalCenter, CenterOfGravity}.
example: (AutomaticTransformInitializationMethod "CenterOfGravity")
By default "GeometricalCenter" is assumed.

Class elastix::VarianceOverLastDimensionMetric< TElastix >

SampleLastDimensionRandomly: randomly sample a number of time points to to compute the variance from. When set to "false", all time points are taken into account. When set to "true", a random number of time points is selected, which can be set with parameter NumSamplesLastDimension.

NumSamplesLastDimension: the number of random samples to take in the time time direction of the data when SampleLastDimensionRandomly is set to true.

SubtractMean: subtract the over time computed mean parameter value from each parameter. This should be used when registration is performed directly on the moving image, without using a fixed image. Possible values are "true" or "false".

Class elastix::WeightedCombinationTransformElastix< TElastix >

Transform: Select this transform as follows:
(Transform "WeightedCombinationTransform")

NormalizeCombinationWeights: use the normalized expression .
(NormalizeCombinationWeights "true" )
Default value: "false". Different values in each resolution are not supported.

SubTransforms: a list of transform parameter filenames that will serve as subtransforms .
(SubTransforms "tp0.txt" "TransformParameters.1.txt" "tpbspline.txt" )

AutomaticScalesEstimation: if this parameter is set to "true" the Scales parameter is ignored and the scales are determined automatically.
example: (AutomaticScalesEstimation "true")
Default: "false".

Scales: The scale factor for each transform parameter, during optimization.
If your input subtransforms have very different magnitudes, you may compensate for that by supplying scales, which will make the optimization CostFunction better behaving. For subtransforms with a high magnitude, provide a large scale then. NB: not in all cases you may want this. example: (Scales 1.0 1.0 10.0)
Default: 1 for each parameter. See also AutomaticScalesEstimation, which is more convenient.

MovingImageDerivativeScales: scale the moving image derivatives. Use
(MovingImageDerivativeScales 1 1 0)
to penalize deformations in the z-direction. The default value is that this feature is not used.
Class itk::ImageGridSampler< TInputImage >
SampleGridSpacing: This parameter controls the spacing of the uniform grid in all dimensions. This should be given in index coordinates.
example: (SampleGridSpacing 4 4 4)
Default is 2 in each dimension.
Class itk::ImageSamplerBase< TInputImage >
ImageSampler: The way samples are taken from the fixed image in order to compute the metric value and its derivative in each iteration. Can be given for each resolution. Select one of {Random, Full, Grid, RandomCoordinate}.
example: (ImageSampler "Random")
The default is Random.
Class ResampleBase

WriteResultImage: flag to determine if the final result image is resampled and written. Choose from {"true", "false"}
example: (WriteResultImage "false")
The default is "true".

WriteResultImageAfterEachResolution: flag to determine if the intermediate result image is resampled and written after each resolution. Choose from {"true", "false"}
example: (WriteResultImageAfterEachResolution "true" "false" "true")
The default is "false" for each resolution.

WriteResultImageAfterEachIteration: flag to determine if the intermediate result image is resampled and written after each iteration. Choose from {"true", "false"}
example: (WriteResultImageAfterEachIteration "true" "false" "true")
The default is "false" for each iteration.
Note that this option is only useful for debugging / tuning purposes.

ResultImageFormat: parameter to set the image file format to to which the resampled image is written to.
example: (ResultImageFormat "mhd")
The default is "mhd".

ResultImagePixelType: parameter to set the pixel type, used for resampling the moving image. If this is different from the input pixel type you are casting your data. This is done using standard c-style casts, so TAKE CARE that you are not throwing away data (for example when going from unsigned to signed, or from float to char).
Choose from (unsigned) char, (unsigned) short, float, double, etc.
example: (ResultImagePixelType "unsigned short")
The default is "short".

CompressResultImage: parameter to set if (lossless) compression of the written image is desired.
example: (CompressResultImage "true")
The default is "false".

Class TranslationStackTransform
Transform: Select this transform as follows:
(Transform "TranslationStackTransform")

 Generated on Mon 14 Jun 2021 for elastix by 1.9.1 (ef9b20ac7f8a8621fcfc299f8bd0b80422390f4b)