// ********** Image Types
(FixedInternalImagePixelType "float")
(FixedImageDimension 3)
(MovingInternalImagePixelType "float")
(MovingImageDimension 3)
// ********** Components
(Registration "MultiMetricMultiResolutionRegistration")
(FixedImagePyramid "FixedRecursiveImagePyramid")
(MovingImagePyramid "MovingRecursiveImagePyramid")
(Interpolator "BSplineInterpolator")
(Metric "AdvancedNormalizedCorrelation" "TransformBendingEnergyPenalty")
(Optimizer "AdaptiveStochasticGradientDescent")
(ResampleInterpolator "FinalBSplineInterpolator")
(Resampler "DefaultResampler")
(Transform "BSplineTransform")
// ********** Pyramid
// Total number of resolutions
(NumberOfResolutions 5)
(ImagePyramidSchedule 4 4 4 3 3 3 2 2 2 1 1 1 1 1 1)
// ********** Transform
(FinalGridSpacingInPhysicalUnits 5.0 5.0 5.0)
(GridSpacingSchedule 16.0 8.0 4.0 2.0 1.0)
(HowToCombineTransforms "Compose")
// ********** Optimizer
// Maximum number of iterations in each resolution level:
(MaximumNumberOfIterations 2000)
(AutomaticParameterEstimation "true")
(UseAdaptiveStepSizes "true")
// ********** Metric
// Just using the default values for the NC metric
(UseRelativeWeights "true")
(Metric0RelativeWeight 1.0)
(Metric1RelativeWeight 0.05)
// ********** Several
(WriteTransformParametersEachIteration "false")
(WriteTransformParametersEachResolution "true")
(WriteResultImageAfterEachResolution "false")
(WritePyramidImagesAfterEachResolution "false")
(WriteResultImage "false")
(ShowExactMetricValue "false")
(ErodeMask "false" "false" "true" "true" "true")
(UseDirectionCosines "true")
// ********** ImageSampler
//Number of spatial samples used to compute the mutual information in each resolution level:
(ImageSampler "RandomCoordinate")
(NumberOfSpatialSamples 2000)
(NewSamplesEveryIteration "true")
(UseRandomSampleRegion "false")
(SampleRegionSize 50.0 50.0 50.0)
(MaximumNumberOfSamplingAttempts 50)
// ********** Interpolator and Resampler
//Order of B-Spline interpolation used in each resolution level:
(BSplineInterpolationOrder 1)
//Order of B-Spline interpolation used for applying the final deformation:
(FinalBSplineInterpolationOrder 3)
//Default pixel value for pixels that come from outside the picture:
(DefaultPixelValue 0)