[Insight-users] Mattes Mutual Information

Nicholas Tustison ntustison at gmail.com
Fri Jan 11 13:18:27 EST 2013


One of the first design aspects with which we parted ways from the old
ITK framework was the way image resolution is handled through the 
MultiResolutionImagePyramid classes/methods for ITKv3.  In ITKv4, 
multi-resolution is not performed on the fixed and moving images but
rather on the "virtual domain image."  There are several reasons for the 
current design but a couple major reasons are:

* with the MultiResolutionPyramid method/classes, the images for all 
resolution levels reside in memory and
* downsampling the fixed and moving images isn't necessary or 
desirable as you possibly introduce interpolation artifacts.

The current design, as encapsulated in the basic ImageRegistrationMethodv4 
class, is to have the user specify a set of shrink factors and a set of smoothing 
parameters, one for each multi-resolution level.  Relevant to this discussion, 
the metric base class contains the following information:

* fixed image
* moving image
* virtual domain image
* transform from moving image to virtual domain image
* transform from fixed image to virtual domain image

The virtual domain image is the reference space in which normalization occurs.
Typically, it is assumed that the reference space is defined by the fixed image.
That assumption continues in ITKv4 for typical registrations but this added 
flexibility allows the user to construct more sophisticated registration scenarios.

In ImageRegistrationMethodv4, prior to each multi-resolution level, the fixed 
and moving images are smoothed and the virtual domain image is downsampled
(both operations dependent upon the user-specified parameters).  To calculate
the metric value and gradient, we iterate over the virtual domain, map the fixed
and moving smooth image values to the virtual domain based on the respective 
transforms, and then calculate the similarity measure at that point.  In this way, 
one isdoing multi-resolution since you are iterating over the downsampled 
virtual domain and mapping into the smoothed fixed and moving images but you
don't have the problems described earlier.

One more issue relevant to the multi-resolution capabilities is the introduction of 
the transform adaptors into ITKv4.  For each successive level, the transform adaptor 
"modifies" the transform from the previous level to the current level for continued
optimization.  For something like the affine transform, the adaptor doesn't do 
anything, but for other transforms, like the displacement field transforms, it upsamples
the displacement field to ensure that it's the same size as the current image or
for the b-spline transform, it can increase the mesh resolution of the control point grid.

An example of how this is put together in a full-scale registration application can
be seen here

http://sourceforge.net/p/advants/svn/1715/tree/trunk/Examples/antsRegistration.cxx

Nick


On Jan 11, 2013, at 11:59 AM, ianl <ilindsay at insigniamedical.co.uk> wrote:

> One thing to note that caught us out when trying to use the xxxv4 classes was
> that the multi-resolution pyramid classes accept ImageToImageMetric objects
> and there does not seem to be a v4 equivalent taking an ImageToImageMetricv4
> (or ObjectToObjectMetric) which is what the v4 metrics are derived from. So
> don't go too far down the route of using the v4 features if you think you
> want to use the pyramid registration framework (or implement it yourself
> which is not too difficult).
> 
> I assume that at some stage the multi-resolution pyramid framework will be
> ported to the v4 framework, but it doesn't seem to be yet unless I have
> missed something.
> 
> 
> 
> 
> --
> View this message in context: http://itk-users.7.n7.nabble.com/Mattes-Mutual-Information-tp30501p30528.html
> Sent from the ITK - Users mailing list archive at Nabble.com.
> _____________________________________
> Powered by www.kitware.com
> 
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
> 
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.php
> 
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
> 
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-users



More information about the Insight-users mailing list