Proposal for Revised Framework
Let us suppose we want to perform a registration with the new framework.
There are a few key ingredients we need:
1. itkComposeTransform class , derived from itkTransform
2. itkDeformationFieldTransform class , derived from itkTransform
3. itkTransformImageFilter --- takes itkTransform as input
Then , pseudocode for a registration is:
1. Set up a multi-resolution optimization over the TransformImageFilter
2. For each transform within itkComposeTransform
--- Optimize: the metric(s) associated with that transform for n iterations or convergence
3. go to next level
In the case of a symmetric registration, pseudocode :
1. Set up a multi-resolution optimization over the TransformImageFilter1 and TransformImageFilter2
--- we usually would set up these filter symmetrically i.e. both have (affine,deformation) maps within and we optimize each pair together
2. For each transform pair taken from ComposeTransform1 and ComposeTransform2
--- Optimize: the metric(s) associated with that transform for n iterations or convergence
3. go to next level
For the Optimize step:
for each transform within ComposeTransform :
--- compute the update to the transform given its associated metric(s)
--- the update may be one-sided (asymmetric) or two-sided (symmetric)
--- note: the metrics do not need access to the transform. they only access outputs of ComposeTransform objects.