Proposal for Revised Framework

From KitwarePublic
Revision as of 14:52, 14 September 2010 by Stnava (talk | contribs)
Jump to navigationJump to search

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.