[Insight-developers] Registration classes
Daniel J. Blezek, Ph.D.
blezek@crd.ge.com
Tue, 2 Jan 2001 11:23:18 -0500 (EST)
Luis,
I've been going through the Insight code looking at header files. These
do not compile, due to a missing itkKalmanFilter.h file:
itkRegistrator3D2D.h
itkRegistrator3D2DBatch.h
itkRegistrator3D2DRecursive.h
itkKalmanLinearEstimator.h
If these are outdated due to the new hierarchy, could you remove them from
the repository?
Thanks,
-dan
On Fri, 15 Dec 2000, Luis Ibanez wrote:
> Hi,
>
> We checked in some classes that could support a full
> hierarchy for registration. They are described in
> "RegisrationArchitecture.doc" in the repository's
> Document directory.
>
> The basic class is called:
>
> RegistrationMethod
>
> It is intended to support registration of any kind
> of objects, no only images.
>
> It groups the basic elements of a registration
> problem:
>
> - a RegistrationMetric to evaluate the match between
> the objects to be registered (target and reference)
>
> - a RegistrationTransformation that defines how the
> reference object will be mapped on top of the target
>
> - a RegistrationMapper that having access to the
> transformation will pass information back and forth
> between the reference and target space. Eventually
> doing some interpolation on the way.
>
> - an RegistrationOptimizer that search for the optimum
> transformation.
>
>
> The Optimizer is expected to be only a light wrapper of an
> already existing optimization class. The first candidates
> to wrap are the vxl algorithms:
>
> vnl_nonlinear_minimizer (the generic api)
> vnl_conjugate_gradient
> vnl_levenberg_marquardt
> vnl_amoeba
>
> and then, some genetic (or evolutionary) algorithms.
>
>
> The optimizer's search space is the one defined by the
> transformation parameters. That allows to separate the
> implementation of the transformation from its definition.
> For example a 2D rigid transformation can be implemented
> as a 3x3 matrix in homogeneous coordinates, but it is
> defined by just three numbers (parameters) that represent:
> ( rotation, translation x, translation y).
>
>
> The Metric will evaluate how much the transformed reference
> match the target objet. Possible Metrics to implement are:
>
> Intensity Correlation (for images)
> Intensity based Mutual Information
> Intensity Squared differences (for images)
> Sum of squared distances (for point sets)
>
>
> On the same spirit, the RegistrationTransformation will be
> a light wrap for geometric transformations, like the already
> existing itkAffineTransform. It just add some mechanism to
> standarize the passing of parameters to the optimization
> method. Some transformations to consider are:
>
> Rigid
> Similarity
> Affine
> Thin Plate Spline (defined by landmarks)
> Flow
>
>
> The basic objects can be used to derive from them, or can
> just be used as examples of what elements the type should
> have.
>
>
> Some examples of how this code will look like when used
> in a real registration problem are in the Testing directory,
> they compile on Linux and VC++. (There are actualy not
> doing any thing different than checking that all the types
> are coherent). They are:
>
> itkRegistrationImageToImageAffine.cxx
> itkRegistrationModelToImage.cxx
> itkRegistrationPoints3D2DAffine.cxx
> itkRegistrationProcrustes.cxx
>
>
> -----
>
>
> Thanks
>
>
> Luis
>
>
> --
> -----------------------------------------------------------
> Luis Ibanez
> Research Assistant Professor - Division of NeuroSurgery
> University of North Carolina at Chapel Hill
> Chapel Hill, NC, 27599 http://www.cs.un.edu/~ibanez
> ------------------------------------------------------------
>
>
>
> _______________________________________________
> Insight-developers mailing list
> Insight-developers@public.kitware.com
> http://public.kitware.com/mailman/listinfo/insight-developers
>
--
Daniel Blezek, Ph.D.
blezek@crd.ge.com
Visual Information Program
Electronic Systems Lab
GE Corporate Research & Development