[Insight-users] "throwing exception at StartRegistration()"

J. Van Dalen J.vanDalen" <J.vanDalen@rad.umcn.nl
Mon, 2 Dec 2002 18:53:26 +0100 (CET)


Hi Luis,

Thanks for your help. It turns out that the mutual information 
registration is very sensitive to the input parameters (as eg
the learning rate). I conclude that my registration is very unstable
due to the dependence of the values of the input parameters.
Therefore, I was thinking about the following solutions:

1. using multiresolution registration (start with a high "shrink" factor,
and iteratively lower it).

2. using some kind of a mask so that voxels with grey values below or
above a certain value will not be used in the mutual information method.

3. use an other quantization for greyvalues (now we have 256 possible
different grey values, but I could think of having less, eg say that all
voxels with grey value of 0 to 4 get a new grey value of 4, all voxels
with grey value of 5 to 9 get a value of 9, etc.)

Now, in 2. and 3. you make use of less information than you actually have.
However, after performing such a "rough" registration, you can always
make a new registration, using more information and using the result
from the rough registration (some kind of an iterative process).

Are there ways to perform the points 2. and 3.? I looked in the Insight
documentation, but could not find it.

Thanks,
Jorn.

On Mon, 2 Dec 2002, Luis Ibanez wrote:
> Hi Jorn,
> 
> This error happens when the fixed image and moving image
> are no longer overlapped. This is an indication that the
> transform is completely off position.
> 
> Typically this happens when the translation component of
> the transform is larger than the image size. You can verify
> this by looking at the transform parameters. If you are using
> an Affine transform in 3D, the last three parameters are
> translations.
> 
> Here are some options you may want to consider:
> 
> 0) Verify that the origin and spacing of both image
>     are correctly set up. Registration is performed in
>     physical space coordinates, not in pixels. Inconsitent
>     pixel spacing may generate too large translations in
>     the transform.
> 
> 1) Reduce the learning rate of the optimizer in order
>     to force smaller steps.
> 
> 2) Modify the translation scale parameter. This parameter
>     controls how fast the optimizer advance on rotations
>     vs translations.
> 
> 3) Track the evolution of parameters in order to identify
>     when the transform is getting out of range. Use a
>     Command / Observer for this purpose.
> 
>     Luis
> 
> =========================================================
> 
> J. Van Dalen wrote:
> 
> > Dear CSPL,
> > 
> > I try to perform a registration using Mutual information and I encouter
> > a similar error as you did encounter a few months ago.
> > 
> >>From the The Insight-users Archives I found:
> > 
> >>I am working on MRI Registration.I have made my own project using MRI
> >>Registration example available in ITK examples.It is working well for
> >>some MRI images.But,It is throwing exception at StartRegistration() for
> >>some imagess.I have hard coded the Parameters which I have to set
> >>before calling StartRegistration().Plese, help me in solving my
> >>problem and give me some information on setting parameter values. Here
> >>I am enclosing the code and parameters details.I am also enclosing the
> >>exception message thrown by startregistration().
> >>
> >>//Exception message
> >>itk::ERROR: MutualInformationImageToImageMetric(003C6D20): All the
> >>sampled point mapped to outside of the moving image
> >>
> > 
> > Now, I have exactly the same error as you had that time. And your code
> > looks very similar to my code. Did you find a solution to this problem?
> > Or, do you know why you had this error?
> > 
> > Hope you can help me,
> > Thanks and Regards,
> > Jorn.