[Insight-users] How to calculate inverse of Versor3DRigidTransform? How to validate registration?

Luis Ibanez luis.ibanez at kitware.com
Sun Aug 20 17:54:42 EDT 2006


Hi Eve,


The description of your test is a bit confusing.


Here is what I presume you are doing:


   1) You have F (fixed) and F (moving) images.

   2) You registered M to F, and using the resulting transform
      you resampled M into the reference system of F, and called
      that resampled image "M1"

   3) Then you resampled M1 to have the resolution of M ?
      (and called that image M2)
      What is the purpose of this resampling ?
      Did you just adjusted the resolution ? or you also applied
      a transform ?

   4) Why now you apply the transform to M2 ?

   5) Why do you register M2 to F ?
      are you trying to verify if you get the same result that
      when you registered M to F ?



If you are trying to verify if a given VersorRigid3DTransform is the
inverse of another transform, you can simply compose the two transforms
and check how far is the composition from being an identity transform.

Note that before comparing both transforms you must make sure that they
have the same Center of rotation.


Please clarify the description of your testing,
in particular what is the rationale behind it.



     Thanks



        Luis



-------------------------------------
evelyn_heyes at homeworking.org wrote:
> Hello ITK-users,
> 
> I am performing 3d registration similar to the registration example (#8) in the ITK guide with the following differences:
> * Mattes' mutual information (15 bins 1,0000 samples)
> * VersorRigid3D optimizer
> * multiresolution
> 
> My concern relates to validation... I'm conducting validation test as follows:
> 
> (given fixed image F and moving image M with resolutions different)
> 
> 1. Calculate aligned moving image M1 and resample M1 to M2 so it has same resolution as M.
> 2. Apply versorRigid3DTransform to M2 with rotation=origin of M2 around y-axis and translation t = [a,b,c]
> 3. Perform registration between M2 and F with same setup as Example#8.
> 
> Here is an example run:
> 
> F-dimensions: 256*256*167
> F-spacing: 1.31^3mm
> M-dimensions: 128*128*70
> M-spacing: 4.66^3mm
> 
> ***Parameters of T (transform applied to M2 in step 2):
> Translation: [-10, 20, -15]
> Rotation matrix:
> 0.997564 0 0.0697564
> 0 1 0
> -0.0697564 0 0.997564
> Rotation center:
> [0, 0, 0]
> Rotation offset:
> [-10, 20, -15] 
> 
> Below is the printout of step 3:
> 
> Fixed's COG: [249.057, 227.131, 162.8]
> Moving's COG: [246.257, 285.306, 216.786]
> TranslationVector:[-2.80001, 58.175, 53.9854]
> 
> Versor3DTransform before initialization
> 1 0 0
> 0 1 0
> 0 0 1
>    Center: [249.057, 227.131, 162.8]
>    Translation: [0, 0, 0]
>    Offset: [0, 0, 0].
> 
> initializing transform...
> 
> Versor3DTransform after initialization
> 1 0 0
> 0 1 0
> 0 0 1
>    Center: [249.057, 227.131, 162.8]
>    Translation: [-2.80001, 58.175, 53.9854]
>    Offset: [-2.80001, 58.175, 53.9854][0.361983 min.] .
> 
> Building the pyramids...
> 
> Start registration..............................................................
> ................................................................................
> ................................................................................
> ................................................................................
> .................................................
> Iteration 1
>   Maximum Step Length: 2
>   Minimum Step Length: 0.0001
> 
> Start registration..............................................................
> ................................................................................
> .........................................................[2.1732 min.]
> 
> Total iterations: 550
> FinalParameters:[0.0065179, -0.0290851, -0.0122236, -2.23873, -20.4402, 31.3509]
> 
> Matrix =
> 0.998009 0.0240553 -0.0582994
> -0.0248136 0.999616 -0.012318
> 0.0579807 0.0137401 0.998223
> 
> Offset =
> [2.28452, -12.1676, 14.0789]
> 
> versor X      = 0.0065179
> versor Y      = -0.0290851
> versor Z      = -0.0122236
> Metric value  = -0.0583124
> 
> My question is how can I compare the numeric results? Specifically, can I simply compare the final transform to the inverse transform of T? And how can I calculate the inverse of T produced in step2? Or, was the test done incorrectly?
> 
> Any help is much appreciated.
> 
> Thanks in advance!
> 
> Eve
> 
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
> 
> 




More information about the Insight-users mailing list