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.

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.

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.

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.

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.

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.

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".

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.

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")

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.

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.

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.

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.

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.

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.

Radius: defines the radius of the filter.
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.

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.
See the documentation of the itk::CMAEvolutionStrategyOptimizer for more information.
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.
See the documentation of the itk::CMAEvolutionStrategyOptimizer for more information.
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).

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".

ValueTolerance: Stopping criterion. See the documentation of the itk::GenericConjugateGradientOptimizer for more information.
example: (ValueTolerance 0.001 0.0001 0.000001)
Default value: 0.00001.

GradientMagnitudeTolerance: Stopping criterion. See the documentation of the itk::GenericConjugateGradientOptimizer for more information.
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".

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.

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.

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: false. Recommended: true. The default value is false for backward compatibility reasons. This parameter was introduced in elastix 4.3. 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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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

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.

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.

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".

GradientMagnitudeTolerance: Stopping criterion. See the documentation of the itk::QuasiNewtonLBFGSOptimizer for more information.
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".

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.

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.

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.

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.

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

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.

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.

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.

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.

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.

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.

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.

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.

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")
Default: "Add".

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.

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

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.

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".

NumberOfSpatialSamples: for each resolution the number of samples used to calculate this metrics value and its derivative.
example: (NumberOfSpatialSamples 5000 5000 10000)
The default is 10000 for each resolution.

FixedImageStandardDeviation: for each resolution the standard deviation of the fixed image.
example: (FixedImageStandardDeviation 1.3 1.9 1.0)
The default is 0.4 for each resolution.

MovingImageStandardDeviation: for each resolution the standard deviation of the moving image.
example: (MovingImageStandardDeviation 1.3 1.9 1.0)
The default is 0.4 for each resolution.

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.

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.

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.

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".