[Insight-users] Re: itk::Error MutualInformationImageToImageMetric
Luis Ibanez
luis.ibanez@kitware.com
Fri, 11 Oct 2002 12:55:06 -0400
Hi Suresh,
When registration is being performed, the moving image is mapped on top
of the fixed image. The mapping will result in a partial overlap
between the
images. Metrics are computed in a subset of the pixels belonging to the
overlap region.
If the transform happens to be too far from the optimal value it may ocurr
that the two images do not overlap at all after mapping. In that case,
it is
impossible to compute any metric value and it is then imposible to feed the
optimizer and figure out a modification for the transform.
You may try a combination of the following strategies:
1) Reduce the learning rates.
The learning rate parameter used by the itk::GradientDescent algorithm
define how big is the step taken by the optimizer. The learning rate is
used to multiply the gradient vector and produce a step. A large
learning
rate results in a long steps and increases the chances of sending the
transform
too fast, too far from the optimal value.
It will probably be even better to just replace GradientDescent by
itk::RegularStepGradientDescent and get rid of the learning rate problem
altogether...
2) Tune the values of the translation scaling. This is important since the
parameters space is composed of rotational values and translational
values.
Rotational values are in the range [-1:1] while translations are in the
range of the image size.( hundreds of pixels). If the
optimization is moving
too fast on translation it may easily send the moving image out of
the range
of the fixed image.
3) As a general safe approach, you may want to add an Observer to your
code and print the transform parameters as every IteerationEvent sent
from the optimizer. In this way you will be able to track the
trajectory
in the parametric space and be able to tune the optimization
parameters .
Please let us know if you continue experiencing problems with your
registration.
Thanks
Luis
==================================
suresh wrote:
> Hi Luis,
> Hi all,
>
> I'm working on MRI-SPECT registration problem.I'm experimenting on
> MultiResMIRegistration example, with my images which or of sizes
> SPECT 128, 128, 48
> MRI 256, 256, 120
>
> it is throwing an ITK exception
>
> itk::Error MutualInformationImageToImageMetric(00E04B0);All the
> sampled point mapped to outside of the moving Image.
>
> I tried changing the number of iterations and learning rates.but could
> not get rid of the exception.
>
> please anybody elaborate more on this exception and on how to fix this.
>
> Thank you,
>
> suresh
>
>
>
>