[Insight-developers] changes to MultiResolutionRegistration framework

Lydia Ng lng@insightful.com
Wed, 6 Mar 2002 13:49:14 -0800


The MultiResolutionRegistration framework has been=20
changed. Previously, MultiResolutionRegistration was
templated over the RegistrationMethod type.
It now behaves in much the same way as
the new de-templated registration framework in that
registration components can be selected at run-time.

In addition to usual registration components=20
two image pyramids are required one for the moving image
and one for the fixed image.

At each resolution level, the user specified components
are used two registered the two downsampled images.

Before each resolution level, an IterationEvent is invoked.
This provides an opportunity for a user interface to
swap any of the components (eg change the transform),
change component parameters (eg learning rates) or
stop the registration altogether.

Impact on user
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
There were two existing multi-res MI registration classes:

MultiResolutionMutualInformationAffineRegistration
MultiResolutionMutualInformationRigidRegistration

These classes are now defunct and will be removed.

Just like the new registration, if you want to use multi-res
MI registration with those combination of components you have
to connect them up yourself.

Test MultiResolutionImageMethodTest_1 and=20
MultiResolutionImageMethodTest_2 are examples on how
to use the new framework to get back the same functionality
that was previously provided by the above classes.

The tricky thing is that the old classes provided an interface
to the change the number of iterations and learning rates
at each resolution. In the tests this functionality is=20
now provided by SimpleMultiResolutionImageRegistrationUI
- it is basically an observer which response to IterationEvents.
Note that inheritance doesn't work in this situation
becase not all Optimizers have SetNumberOfIterations() and
SetLearningRate() methods.

Both the registration and multi-res registration framework
are now very flexible and generic. My fear is that it pushes
alot complexity back on the user - what do others think?

- Lydia