[Insight-users] Question about MultiResMiRegistration result?

Luis Ibanez luis.ibanez@kitware.com
Mon, 14 Oct 2002 10:29:54 -0400


Hi Cheng,

The results of the MultiResMIRegistration in 3D are
presented as a 3x3 matrix and a 3 components vector.

Together they represent an affine transform. The matrix
contains rotations, scale changes and shearing. The vector
represents translations.


A point P will be transformed by


        P'   =  M  x  P    +   V

where M is the 3x3 matrix, V is the 3 components {x,y,z}
translation vector and P' is the {x,y,z} point after
transformation.

Translations are measured in *millimeters*, not pixels.
since the registration is performed in physical space.

The rotation  components are usually on the range -1:1
but do not have to stay in this range since they can also
represent scale changes. You can think of M as the
composition of a rotational matrix with an anisotropic
scale matrix and shearing matrices.

The origin of the coordinate system is given by the fixed
image. itk::Images have an Origin() that you can Get/Set.
http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Image.html

The coordinate system is right-handed.


About the different results in Windows/Linux:

It is expected to get different results in Windows and
Unix/Linux. The reason is that Visual C++ do not use by
default the IEEE representation for floating point numbers.
Instead it uses a 48 bit representation that it is supposed
to be native in Intel processors.

As a consequence the cumulated errors in floating point
operations have a different behavior on both platforms.

You can force VC++ to use the IEEE standard though...at some
price in performance...

A similar problem will be found with the Intel C++ compiler.

VC++ is known to have some erratic behavior when it comes
to implicitly transform floating point numbers from and to
the IEEE format. This happens differently depending on
the type of build you are using { Debug vs Release }.


Please let us know if you have further questions.



    Thanks


      Luis

====================================================


Chen, Cheng-Hsiu (MED) wrote:

> Is anyone know how to interpret the result of MultiResMIRegistration
> (e.g. The Overall Transformation matrix and offset)?
> If the rotation is measured between -1 and 1, then what
> is the measurement of translation offset? by pixel or pixel size?
> Where is the origin of the coordinate system?
> What kind of coordinate system? Left-Hand/Right-Hand?
> or something else?
> 
> I performed the MultiResMIRegistatin on the same image set
> at different O.S. (Linux and Window2000), the result are different.
> 
> On Window 2000 the transformation matrix is
>  0.99951   -0.0148422 -0.0275434
>  0.0121688  0.995421  -0.94812
>  0.0288245  0.0944304  0.995114 
> Translation offset is:
> -32.0531 63.969 -62.4461
> 
> On Linux the transformation matrix is:
>  0.999512  -0.0241558 -0.0198178
>  0.0223209  0.995862  -0.0880938
>  0.0218638  0.0876085  0.995915
> Translation offset is:
> -32.4999 60.1089 -54.4322
> 
> Cheng
> =================================================
> Cheng-Hsiu  Chen
> 8499 Darrow Road, Suite 2
> Twinsburg, OH 44087
> (330) 487-6679                Cheng-Hsiu.Chen@med.ge.com
> GE Medical Systems            www.gemedicalsystems.com
> _______________________________________________
> Insight-users mailing list
> Insight-users@public.kitware.com
> http://public.kitware.com/mailman/listinfo/insight-users
> 
>