[Insight-users] Image Metrics on Image Regions

Luis Ibanez luis . ibanez at kitware . com
Mon, 16 Jun 2003 12:57:53 -0400


Hi Stefan,


1) The itk::Metric itself will not allow you to use
    two transforms, but you can easily initialize
    the transform with the value of the global
    transform, and then the registration will
    look for the displacement from this initialization.

    This is assuming you perform full-registration
    per-block, which after thinking about it,
    it shouldn't be that slow because translations
    in small blocks usually converge pretty
    straight forward.

    Try initializing the TranslationTransform with
    the global translation transform.  If the global
    transform is a more generic one (e.g. affine
    instead of just translation) then your option of
    resampling the input image will be a much better
    bet since you factorize all these computations.


2) The KernelTransform will give you a full Affine
    component of your deformable transform. I was
    inaccurate when I called the AMatrix a "rotation
    + scaling" matrix. It is actually the non-translational
    part of the affine transform. So, it will manage
    shearing too.

    In other words, the combination of

          AMatrix and  BVector

    defines a full Affine transform.





Please let us know if you run into any problem,



Regards,



    Luis



----------------------
Stefan Schmidt wrote:
> Hi Luis,
> 
> thank you for the quick and detailed response, that already helped me a lot.
> 
> 
>>In typical block-matching algorithms you are
>>probably looking just at translations transforms,
>>(not rotations nor scale changes). That makes
>>item (3) to be just the itk::TranslationTransform.
> 
> 
> In my case (for the moment still from a very abstract point of view, 
> unfortunately) I'd rather like to use a composition of two transforms, namely 
> a global one (that I'm trying iteratively to estimate with my algorithm), and 
> the TranslationTransform to point to the block I'm comparing with. But I 
> guess I have to interpolate an intermediate image as I can't plug 2 
> Transforms into the Metric, right? Alternatively, I could maybe implement a 
> "composed transform" herited from the Transform class.
> 
> 
> 
>>You may want to prepare some coffee and evaluate both
>>approaches...
> 
> 
> Yes indeed :-)
> 
> 
> 
>>B)  You could use the Kernel based transforms as a
>>     helper class for computing the Affine part of
>>     the deformation field.
> 
> [...]
> 
>>    Once the computation is done, you will have:
>>
>>  - AMatrix holds the rotation+scaling part of the Affine transform
>>  - BVector holds the translation part of the Affine transform
> 
> 
> I must admit I don't fully understand this method yet, but it sounds 
> interesting. 
> Anyways, Rotation+scaling+translation gives only a similitude transform, what 
> about the shear part, can one get that, too?
> 
> 
> Best regards,
> Stefan Schmidt
> 
> 
>