[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
>
>
>