[Insight-users] Centered Transform
Luis Ibanez
luis . ibanez at kitware . com
Wed, 15 Oct 2003 23:02:03 -0400
Hi Robert,
Thanks for clarifying your question.
You are right, if you can determine that
the amount of translation is much larger
than the rotation, you want to solve the
misregistration in translation first.
Conversely, if the rotation is larger
than the amount of translation, you want
to solve the rotation first.
Note that this is purely subjective since
it is not obvious how to compare the
amount of rotation (in degrees) against
the amount of translation (in millimeters).
What you could do in this case is to run a
registration process in two steps.
First you configure a full registration
set (optimizer, metric, interpolator and
transform) using a translation transform.
Run the registration until you find a
reasonable minimum.
Then you resample the moving image using
this translation and feed the resampled
image as the input moving image of a full
second registration process. You select
again an optimizer, metric, interpolator
and transform, but this time a rotation
transform. Note that some degradation is
to be expected in the image due to the
resampling process....
----
An alternative way of doing this is to
regulate the "translation scaling" in the
CenteredRigid transform, and use a single
registration set. The translation scaling
allow you to balance how much of the step
in the transform parametric space is taken
along translational directions and how much
along rotational directions. You will find
details about the "translation scaling" on
the SoftwareGuide.
-----
In practice, however, if you use one of the
Centered transform along with the centered
initializer, the translation provided by
the initializer should put you very close
to solving the translational misregistration.
For this you want to use the initializer
in the "Moments" mode as opposed to the
"Geometrical" mode. The only case where "Moments"
are not good initializers is when you are
registering two images of different
modalities. Using the initializer is probably
the best way to get both "translation and
rotation with good accuracy". However, keep
in mind that registration (as most good things
in life) does not come for free, and some
effort and perseverance is required in the
process of tunning parameters for your
particular application.
You may want to experiment first with the
images available in "Insight/Examples/Data"
and with the registration examples described
in the SoftwareGuide. The code for the examples
is available in "Insight/Examples/Registration"
In particular, try to use the images:
BrainProtonDensitySliceBorder20.png
BrainProtonDensitySliceShifted13x17y.png
BrainProtonDensitySliceR10X13Y17.png
It may not be worth to attack the registration
problem of your own images until you feel
confident registering the standard images
listed above.
----
Please let us know if you have further questions,
Thanks
Luis
------------------------------
Robert-Paul Buitendijk wrote:
> Hi Luis
>
> I want to compare two pictures, in these pictures there can be displacements
> (rotational as well as translational).
> I want to get the best possible values for those displacements.
> The loop for centred transforms runs untill it reaches the lowest value for
> the metric.
> That value will not allways be as good as i need it to be. In the
> Softwareguide you mention that the rotational error in the example didn't
> have such a big error in comparisence to the actual rotation, but that the
> translation did.I want to get both values with good accuracy.
>
> My thought was to use the rotation provided by the Centered Transform loop
> to displace the the moving picture. The rotations in the two pictures will
> then more or less be the same. And when i then compare the fixedimage with
> the altered movingimage, the difference will mainly be in the translation.
> So that i can get the difference in translation between the two pictures
> with great accuracy as well.
>
> I believe that this isn't implemented in your code up to now.... is that
> correct??
> Is this a good way to get the rotational and translational differences
> between the two pictures with good accuracy?
>
> tnx Robert.
>
>
> -----Oorspronkelijk bericht-----
> Van: insight-users-admin at itk . org
> [mailto:insight-users-admin at itk . org]Namens Luis Ibanez
> Verzonden: woensdag 15 oktober 2003 17:16
> Aan: Robert-Paul Buitendijk
> CC: insight-users at itk . org
> Onderwerp: Re: [Insight-users] Centered Transform
>
>
>
> Hi Robert,
>
> I'm not sure I understand what you mean by "measure the rotation"
> and "measure the translation".
>
> Do you mean to solve the rotational (translational) component
> of the registration ?
>
>
> Solving the registration by intermediate steps is always
> convenient, in particular is there are any hints that help
> to reduce the degrees of freedom of the transforms involved.
>
> The loop that you mention is what the RegistrationMethod
> does implicitly in the optimizer iterative loop. At each iteration
> the parameters of the transform are updated and the metric
> use the transform in order to sample the values of the moving
> image. This is equivalent to resample the moving image with
> the current transform and the evaluate the image-metric between
> the fixed image and the resampled moving image.
>
> Please expand a bit the context of your question (an example
> will be of great help).
>
>
> Thanks,
>
>
> Luis
>
>
> ------------------------------
> Robert-Paul Buitendijk wrote:
>
>>Hi Luis
>>
>>I have a question about the centered transform.
>>In the softwareguide you mention that the rotation in images is well
>>measered but there is a greater error in the translation of the pictures.
>>Could you not first measure the rotation with a centered transform and
>
> then
>
>>by using a ResampleImageFilter transform your MovingImagePicture so that
>
> the
>
>>rotational difference between the 2 pictures is now reduced to a very
>
> small
>
>>one.
>>When you then measure the translation (and rotation) of the to pictures
>>again with a centered transform, wouldn't the translation be less
>>inacurate??
>>
>>Is there for instance a loop which Measures -> Resamples -> Measures so
>
> that
>
>>both the rotational and translational differences are accuratly measured??
>>
>>tnx Robert
>>
>>
>>_______________________________________________
>>Insight-users mailing list
>>Insight-users at itk . org
>>http://www . itk . org/mailman/listinfo/insight-users
>>
>
>
>
>
>
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk . org
> http://www . itk . org/mailman/listinfo/insight-users
>
>
>
>