[Insight-developers] MultiResolution registration framework

Lydia Ng lng@insightful.com
Fri, 27 Apr 2001 16:54:45 -0700


Hi all:

As discussed in Bethesda and today's tcon
I am interested in putting together a
generic framework for multi-resolution/hierarchical
registration.

I have written a straw-man proposal:
InsightDocuments/MultiResolutionProposal.doc
- I will try to get the pdf version in by Monday.

I have checked in a couple of base classes 
in Algorithms/:
===========================
MultiResolutionImagePyramid
===========================
a filter that generates the images at a given
scale of a multi-resolution image pyramid.

This class downsamples the image using the shrink
filter. As this framework develops other stragies
(Gaussian,spline,wavelets) will be implemented as
subclasses.

The pyramid configuration is specified by a schedule
which is a table for shrink factors for each dimension
at each resolution level.

As Stephen suggested, a similar set of classes can
be developed for PointSet's.

===========================
MultiResolutionRegistration
===========================
is templated over a trait class containing typedefs for:
	- TargetType
      - ReferenceType
      - TargetPyramidType
      - ReferencePyramidType
      - RegistrationMethod

This class basically contain the main control loop
for getting the images at each level and connecting them
to the registrator.

This class (or its subclass) is also responsible for 
initializing the next level registration using results from
the previous level(s).

-------------------
Like the registration framework, a large number of class
can be generated if we instantiate all combinations.
I think in Bethesda, we agreed to put the instantiations
as Examples (is this correct?)

I have checked in a mutual information example into
Examples/MultiResMIRegistration

I have added this directory to CMakeLists.txt 
so CMake will find and build it automatically.

--------------------
I am interested in getting feedback from the community.

Some ideas/improvements have already been discussed at
the today's tcon:
 - adding callback pre and post registration at each level
   to allowing the calling function to change parameters

Thanks,
Lydia