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

evelyn_heyes at homeworking.org evelyn_heyes at homeworking.org
Mon Aug 14 18:41:51 EDT 2006


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



More information about the Insight-users mailing list