[Insight-users] RE: VersorRigid3DTransform

Radhika Sivaramakrishna radhika.sivaramakrishna at synarc.com
Thu, 8 Jan 2004 10:31:28 -0800


This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_001_01C3D615.A17E7082
Content-Type: text/plain

Hi Luis,

Basically I used your example in ImageRegistration8.cxx as is, so I did use
Optimizerscale.

To answer your questions in order:

A) I used the metric MeanSquaresImageToImageMetric (as the example does) and
after about 89 iterations this is the error I got!


ExceptionObject caught !

itk::ExceptionObject (0x82c4738)
Location: "Unknown"
File:
/home/rsivaram/Insight/Code/Algorithms/itkMeanSquaresImageToImageMetric.txx
Line: 103
Description: itk::ERROR: MeanSquaresImageToImageMetric(0x82bc698): All the
points mapped to outside of the moving image

B) These images are brain MRI T1-weighted images. 

C) How do I verify the origin and spacing? Basically I am trying to test
this currently on a simulated case where I have created one of the images
from the other by a known transformation, so is this still an issue?

D) Again initialization of the transform is exactly as in
ImageRegistration8.cxx.

My concern about posting the images is privacy issues since these are from a
hospital and there may be HIPAA issues. How accessible are
these images to the outside world?

Thanks
Radhika



-----Original Message-----
From: Luis Ibanez [mailto:luis.ibanez at kitware.com] 
Sent: Thursday, January 08, 2004 10:13 AM
To: Radhika Sivaramakrishna
Cc: 'insight-users at itk.org'
Subject: Re: VersorRigid3DTransform


Hi Radhika,

It looks like you didn't set up the parameterScale array.

Please look at the example

    Insight/Examples/Registration/ImageRegistration8.cxx

You will find code like the following

   typedef OptimizerType::ScalesType       OptimizerScalesType;

   OptimizerScalesType optimizerScales(
                          transform->GetNumberOfParameters() );

   const double translationScale = 1.0 / 1000.0;

   optimizerScales[0] = 1.0;
   optimizerScales[1] = 1.0;
   optimizerScales[2] = 1.0;
   optimizerScales[3] = translationScale;
   optimizerScales[4] = translationScale;
   optimizerScales[5] = translationScale;

   optimizer->SetScales( optimizerScales );


If you don't scale the translations, they will be moving
at very small steps and the optimization will take forever.


The metric value of e+9 looks pathologically large !!

A) What image metric are you using ?

B) What is the modality of the images you are registering ?

C) Did you verified that the origin and spacing of the
    images is correctly defined ? (registration is performed
    in physical coordinates, not pixel coordinates).

D) How did you initialized the transform ?


Maybe it will be simpler to post your code....

You can also post your images in MyPACS if you
want us to try running a registration on them.

             http://www.mypacs.net

Simply open an account (for free) and let us know of
the ID given to your images.




Regards


    Luis


-----------------------------
Radhika Sivaramakrishna wrote:
> Hi Luis,
> Thanks for your explanation. I was trying to run use the new optimizer 
> for registering my two 3D images where one has been created from the 
> other using a 10 degree rotation about the slice direction (so each 
> slice is rotated by 10 degrees). I used the following values for the 
> parameters of the optimization:
> 
> I used the preset values in the ImageRegistration8.cxx example:
> Maximum Step Length = 1.0
> Minimum Step Length = 0.001
> Number of Iterations = 200
> 
> Even after 200 iterations, the metric value had not budged and was very 
> high (e+9) and basically, the final result was a blank image with all 
> voxels set to the default value. However, in the intermediate steps, the 
> translation values were steadily moving along almost monotonically. So I 
> don't understand how the metric value is practically the same, but some 
> movement in the parameter is taking place.
> 
> Then I decided to change the Step length etc so I set the following
values:
> Maximum Step Length = 3.0
> Minimum Step Length = 0.01
> Number of Iterations = 200
> 
> Now, I find even after 24 iterations, the metric value is still more or 
> less the same high value as previously and has hardly changed at all, in 
> fact it is not following any trend, it decreased marginally, increased 
> marginally, so it appears stuck, meanwhile the translation parameters 
> are steadily changing monotically (almost change of 2 for each 
> translation parameter). So I don't understand what is going on. Can you 
> help me?
> 
> Thanks
> Radhika
> 
> -----Original Message-----
> From: Luis Ibanez [mailto:luis.ibanez at kitware.com]
> Sent: Thursday, January 08, 2004 8:26 AM
> To: Radhika Sivaramakrishna
> Cc: 'insight-users at itk.org'
> Subject: Re: VersorRigid3DTransform
> 
> 
> Hi Radhika,
> 
> The Center of rotation was removed because it
> is not really needed for the optimization and
> it costs 50% more on computing time to attempt
> to optimize the center (9 parameters versus
> 6 parameters).
> 
> In practice it is enough to get close to the
> real center of rotation in order stabilize the
> optimization. Note that in principle, we could
> have stick to always use the origin of coordinates
> as center of rotation. Mathematically it is enough
> to rotate around the origin and to apply a translation
> in order to get any rigid transformation.
> 
> The only reason for introducing an arbitrary center
> of rotation is that it reshapes the cost function in
> such a way that is is easy to perform a gradient
> descent on it.
> 
> The Center of rotation is set to the origin by default.
> I *strongly* suggest you to set the Center of rotation
> with the helper class
> 
>       CenteredTransformInitializer
>
http://www.itk.org/Insight/Doxygen/html/classitk_1_1CenteredTransformInitial
izer.html 
> 
> 
> as is illustrated in the Example file
> 
>    Insight/Examples/Registration/ImageRegistration8.cxx
> 
> 
> Regards,
> 
> 
>     Luis
> 
> 
> ---------------------------------
> 
> Radhika Sivaramakrishna wrote:
> 
>  > Hi Luiz,
>  > Thanks for making this code available so fast. I tried to use the new
>  > VersorRigid3DTransformOptimizer for my problem. I noticed that it only
>  > has 6 parameters. Why was the center of rotation removed?
>  >
>  > Also, does it assume origin is the center of rotation?
>  >
>  > Thanks
>  > Radhika
>  >
>  >
>  > -----Original Message-----
>  > From: Luis Ibanez [mailto:luis.ibanez at kitware.com]
>  > Sent: Monday, January 05, 2004 1:59 PM
>  > To: Radhika Sivaramakrishna
>  > Cc: 'insight-users at itk.org'
>  > Subject: Re: VersorRigid3DTransform
>  >
>  >
>  > Hi Radhika,
>  >
>  >
>  > Bug #475  has been fixed & closed.
>  >
>  > The new class
>  >
>  >       itkVersorRigid3DTransformOptimizer
>  >
>  > is now available under
>  >
>  >       Insight/Code/Numerics
>  >
>  > Its test is passing and an example
>  > on its use was setup under
>  >
>  >    Insight/Examples/Registration/
>  >                 ImageRegistration8.cxx
>  >
>  >
>  > Please let us know if you encounter
>  > any problems using this class.
>  >
>  >
>  >    Thanks
>  >
>  >
>  >       Luis
>  >
>  >
>  > -------------------------------
>  > Radhika Sivaramakrishna wrote:
>  >
>  >  > Hi Luis,
>  >  >
>  >  > Thanks for your detailed responses on the optimizer for the
>  >  > VersorRigid3DTransform.
>  >  >
>  >  >
>  >  >
>  >  > Could you let me know the timeframe when you anticipate this 
> optimizer
>  >  > to be available. Is there a way to check for it on my own for eg. 
> on the
>  >  > dashboard?
>  >  >
>  >  >
>  >  >
>  >  >
>  >  >
>  >
>  >
>  >                                                    
>  > -----------------------------------------------------
>  > Confidentiality Notice.
>  > This email message is for the sole use of the intended recipient(s) and
>  > may contain confidential and privileged information. Any unauthorized
>  > review, use, disclosure or distribution is prohibited. If you are not
>  > the intended recipient, please contact the sender by reply email and
>  > destroy all copies of the original message. If you are the intended
>  > recipient, please be advised that the content of this message is
subject
>  > to access, review and disclosure by the sender's Email System 
> Administrator.
>  >
> 
> 
>                                                     
> ----------------------------------------------------- 
> Confidentiality Notice.
> This email message is for the sole use of the intended recipient(s) and 
> may contain confidential and privileged information. Any unauthorized 
> review, use, disclosure or distribution is prohibited. If you are not 
> the intended recipient, please contact the sender by reply email and 
> destroy all copies of the original message. If you are the intended 
> recipient, please be advised that the content of this message is subject 
> to access, review and disclosure by the sender's Email System
Administrator.
> 


                                                     
-----------------------------------------------------  
Confidentiality Notice. 
This email message is for the sole use of the intended recipient(s) and may
contain confidential and privileged information. Any unauthorized review,
use, disclosure or distribution is prohibited. If you are not the intended
recipient, please contact the sender by reply email and destroy all copies
of the original message. If you are the intended recipient, please be
advised that the content of this message is subject to access, review and
disclosure by the sender's Email System Administrator.

------_=_NextPart_001_01C3D615.A17E7082
Content-Type: text/html
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
5.5.2656.87">
<TITLE>RE: VersorRigid3DTransform</TITLE>
</HEAD>
<BODY>

<P><FONT SIZE=3D2>Hi Luis,</FONT>
</P>

<P><FONT SIZE=3D2>Basically I used your example in =
ImageRegistration8.cxx as is, so I did use</FONT>
<BR><FONT SIZE=3D2>Optimizerscale.</FONT>
</P>

<P><FONT SIZE=3D2>To answer your questions in order:</FONT>
</P>

<P><FONT SIZE=3D2>A) I used the metric MeanSquaresImageToImageMetric =
(as the example does) and after about 89 iterations this is the error I =
got!</FONT></P>
<BR>

<P><FONT SIZE=3D2>ExceptionObject caught !</FONT>
</P>

<P><FONT SIZE=3D2>itk::ExceptionObject (0x82c4738)</FONT>
<BR><FONT SIZE=3D2>Location: &quot;Unknown&quot;</FONT>
<BR><FONT SIZE=3D2>File: =
/home/rsivaram/Insight/Code/Algorithms/itkMeanSquaresImageToImageMetric.=
txx</FONT>
<BR><FONT SIZE=3D2>Line: 103</FONT>
<BR><FONT SIZE=3D2>Description: itk::ERROR: =
MeanSquaresImageToImageMetric(0x82bc698): All the points mapped to =
outside of the moving image</FONT>
</P>

<P><FONT SIZE=3D2>B) These images are brain MRI T1-weighted images. =
</FONT>
</P>

<P><FONT SIZE=3D2>C) How do I verify the origin and spacing? Basically =
I am trying to test this currently on a simulated case where I have =
created one of the images from the other by a known transformation, so =
is this still an issue?</FONT></P>

<P><FONT SIZE=3D2>D) Again initialization of the transform is exactly =
as in ImageRegistration8.cxx.</FONT>
</P>

<P><FONT SIZE=3D2>My concern about posting the images is privacy issues =
since these are from a hospital and there may be HIPAA issues. How =
accessible are</FONT></P>

<P><FONT SIZE=3D2>these images to the outside world?</FONT>
</P>

<P><FONT SIZE=3D2>Thanks</FONT>
<BR><FONT SIZE=3D2>Radhika</FONT>
</P>
<BR>
<BR>

<P><FONT SIZE=3D2>-----Original Message-----</FONT>
<BR><FONT SIZE=3D2>From: Luis Ibanez [<A =
HREF=3D"mailto:luis.ibanez at kitware.com">mailto:luis.ibanez at kitware.com</=
A>] </FONT>
<BR><FONT SIZE=3D2>Sent: Thursday, January 08, 2004 10:13 AM</FONT>
<BR><FONT SIZE=3D2>To: Radhika Sivaramakrishna</FONT>
<BR><FONT SIZE=3D2>Cc: 'insight-users at itk.org'</FONT>
<BR><FONT SIZE=3D2>Subject: Re: VersorRigid3DTransform</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>Hi Radhika,</FONT>
</P>

<P><FONT SIZE=3D2>It looks like you didn't set up the parameterScale =
array.</FONT>
</P>

<P><FONT SIZE=3D2>Please look at the example</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; =
Insight/Examples/Registration/ImageRegistration8.cxx</FONT>
</P>

<P><FONT SIZE=3D2>You will find code like the following</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; typedef =
OptimizerType::ScalesType&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
OptimizerScalesType;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; OptimizerScalesType =
optimizerScales(</FONT>
<BR><FONT =
SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp; transform-&gt;GetNumberOfParameters() );</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; const double translationScale =3D 1.0 / =
1000.0;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; optimizerScales[0] =3D 1.0;</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; optimizerScales[1] =3D 1.0;</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; optimizerScales[2] =3D 1.0;</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; optimizerScales[3] =3D =
translationScale;</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; optimizerScales[4] =3D =
translationScale;</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; optimizerScales[5] =3D =
translationScale;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; optimizer-&gt;SetScales( optimizerScales =
);</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>If you don't scale the translations, they will be =
moving</FONT>
<BR><FONT SIZE=3D2>at very small steps and the optimization will take =
forever.</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>The metric value of e+9 looks pathologically large =
!!</FONT>
</P>

<P><FONT SIZE=3D2>A) What image metric are you using ?</FONT>
</P>

<P><FONT SIZE=3D2>B) What is the modality of the images you are =
registering ?</FONT>
</P>

<P><FONT SIZE=3D2>C) Did you verified that the origin and spacing of =
the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; images is correctly defined ? =
(registration is performed</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; in physical coordinates, not =
pixel coordinates).</FONT>
</P>

<P><FONT SIZE=3D2>D) How did you initialized the transform ?</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>Maybe it will be simpler to post your code....</FONT>
</P>

<P><FONT SIZE=3D2>You can also post your images in MyPACS if you</FONT>
<BR><FONT SIZE=3D2>want us to try running a registration on =
them.</FONT>
</P>

<P><FONT =
SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp; <A HREF=3D"http://www.mypacs.net" =
TARGET=3D"_blank">http://www.mypacs.net</A></FONT>
</P>

<P><FONT SIZE=3D2>Simply open an account (for free) and let us know =
of</FONT>
<BR><FONT SIZE=3D2>the ID given to your images.</FONT>
</P>
<BR>
<BR>
<BR>

<P><FONT SIZE=3D2>Regards</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; Luis</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>-----------------------------</FONT>
<BR><FONT SIZE=3D2>Radhika Sivaramakrishna wrote:</FONT>
<BR><FONT SIZE=3D2>&gt; Hi Luis,</FONT>
<BR><FONT SIZE=3D2>&gt; Thanks for your explanation. I was trying to =
run use the new optimizer </FONT>
<BR><FONT SIZE=3D2>&gt; for registering my two 3D images where one has =
been created from the </FONT>
<BR><FONT SIZE=3D2>&gt; other using a 10 degree rotation about the =
slice direction (so each </FONT>
<BR><FONT SIZE=3D2>&gt; slice is rotated by 10 degrees). I used the =
following values for the </FONT>
<BR><FONT SIZE=3D2>&gt; parameters of the optimization:</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; I used the preset values in the =
ImageRegistration8.cxx example:</FONT>
<BR><FONT SIZE=3D2>&gt; Maximum Step Length =3D 1.0</FONT>
<BR><FONT SIZE=3D2>&gt; Minimum Step Length =3D 0.001</FONT>
<BR><FONT SIZE=3D2>&gt; Number of Iterations =3D 200</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; Even after 200 iterations, the metric value had =
not budged and was very </FONT>
<BR><FONT SIZE=3D2>&gt; high (e+9) and basically, the final result was =
a blank image with all </FONT>
<BR><FONT SIZE=3D2>&gt; voxels set to the default value. However, in =
the intermediate steps, the </FONT>
<BR><FONT SIZE=3D2>&gt; translation values were steadily moving along =
almost monotonically. So I </FONT>
<BR><FONT SIZE=3D2>&gt; don't understand how the metric value is =
practically the same, but some </FONT>
<BR><FONT SIZE=3D2>&gt; movement in the parameter is taking =
place.</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; Then I decided to change the Step length etc so =
I set the following values:</FONT>
<BR><FONT SIZE=3D2>&gt; Maximum Step Length =3D 3.0</FONT>
<BR><FONT SIZE=3D2>&gt; Minimum Step Length =3D 0.01</FONT>
<BR><FONT SIZE=3D2>&gt; Number of Iterations =3D 200</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; Now, I find even after 24 iterations, the =
metric value is still more or </FONT>
<BR><FONT SIZE=3D2>&gt; less the same high value as previously and has =
hardly changed at all, in </FONT>
<BR><FONT SIZE=3D2>&gt; fact it is not following any trend, it =
decreased marginally, increased </FONT>
<BR><FONT SIZE=3D2>&gt; marginally, so it appears stuck, meanwhile the =
translation parameters </FONT>
<BR><FONT SIZE=3D2>&gt; are steadily changing monotically (almost =
change of 2 for each </FONT>
<BR><FONT SIZE=3D2>&gt; translation parameter). So I don't understand =
what is going on. Can you </FONT>
<BR><FONT SIZE=3D2>&gt; help me?</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; Thanks</FONT>
<BR><FONT SIZE=3D2>&gt; Radhika</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; -----Original Message-----</FONT>
<BR><FONT SIZE=3D2>&gt; From: Luis Ibanez [<A =
HREF=3D"mailto:luis.ibanez at kitware.com">mailto:luis.ibanez at kitware.com</=
A>]</FONT>
<BR><FONT SIZE=3D2>&gt; Sent: Thursday, January 08, 2004 8:26 AM</FONT>
<BR><FONT SIZE=3D2>&gt; To: Radhika Sivaramakrishna</FONT>
<BR><FONT SIZE=3D2>&gt; Cc: 'insight-users at itk.org'</FONT>
<BR><FONT SIZE=3D2>&gt; Subject: Re: VersorRigid3DTransform</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; Hi Radhika,</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; The Center of rotation was removed because =
it</FONT>
<BR><FONT SIZE=3D2>&gt; is not really needed for the optimization =
and</FONT>
<BR><FONT SIZE=3D2>&gt; it costs 50% more on computing time to =
attempt</FONT>
<BR><FONT SIZE=3D2>&gt; to optimize the center (9 parameters =
versus</FONT>
<BR><FONT SIZE=3D2>&gt; 6 parameters).</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; In practice it is enough to get close to =
the</FONT>
<BR><FONT SIZE=3D2>&gt; real center of rotation in order stabilize =
the</FONT>
<BR><FONT SIZE=3D2>&gt; optimization. Note that in principle, we =
could</FONT>
<BR><FONT SIZE=3D2>&gt; have stick to always use the origin of =
coordinates</FONT>
<BR><FONT SIZE=3D2>&gt; as center of rotation. Mathematically it is =
enough</FONT>
<BR><FONT SIZE=3D2>&gt; to rotate around the origin and to apply a =
translation</FONT>
<BR><FONT SIZE=3D2>&gt; in order to get any rigid =
transformation.</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; The only reason for introducing an arbitrary =
center</FONT>
<BR><FONT SIZE=3D2>&gt; of rotation is that it reshapes the cost =
function in</FONT>
<BR><FONT SIZE=3D2>&gt; such a way that is is easy to perform a =
gradient</FONT>
<BR><FONT SIZE=3D2>&gt; descent on it.</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; The Center of rotation is set to the origin by =
default.</FONT>
<BR><FONT SIZE=3D2>&gt; I *strongly* suggest you to set the Center of =
rotation</FONT>
<BR><FONT SIZE=3D2>&gt; with the helper class</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
CenteredTransformInitializer</FONT>
<BR><FONT SIZE=3D2>&gt; <A =
HREF=3D"http://www.itk.org/Insight/Doxygen/html/classitk_1_1CenteredTran=
sformInitializer.html" =
TARGET=3D"_blank">http://www.itk.org/Insight/Doxygen/html/classitk_1_1Ce=
nteredTransformInitializer.html</A> </FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; as is illustrated in the Example file</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp;&nbsp;&nbsp; =
Insight/Examples/Registration/ImageRegistration8.cxx</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; Regards,</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Luis</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; ---------------------------------</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; Radhika Sivaramakrishna wrote:</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; Hi Luiz,</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; Thanks for making this code =
available so fast. I tried to use the new</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; VersorRigid3DTransformOptimizer for =
my problem. I noticed that it only</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; has 6 parameters. Why was the center =
of rotation removed?</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; Also, does it assume origin is the =
center of rotation?</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; Thanks</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; Radhika</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; -----Original Message-----</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; From: Luis Ibanez [<A =
HREF=3D"mailto:luis.ibanez at kitware.com">mailto:luis.ibanez at kitware.com</=
A>]</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; Sent: Monday, January 05, 2004 1:59 =
PM</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; To: Radhika Sivaramakrishna</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; Cc: 'insight-users at itk.org'</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; Subject: Re: =
VersorRigid3DTransform</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; Hi Radhika,</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; Bug #475&nbsp; has been fixed &amp; =
closed.</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; The new class</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
itkVersorRigid3DTransformOptimizer</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; is now available under</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
Insight/Code/Numerics</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; Its test is passing and an =
example</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; on its use was setup under</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;&nbsp;&nbsp;&nbsp; =
Insight/Examples/Registration/</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; =
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp; ImageRegistration8.cxx</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; Please let us know if you =
encounter</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; any problems using this =
class.</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;&nbsp;&nbsp;&nbsp; Thanks</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
Luis</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; =
-------------------------------</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; Radhika Sivaramakrishna =
wrote:</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;&nbsp; &gt; Hi Luis,</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;&nbsp; &gt; Thanks for your detailed =
responses on the optimizer for the</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;&nbsp; &gt; =
VersorRigid3DTransform.</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;&nbsp; &gt; Could you let me know the =
timeframe when you anticipate this </FONT>
<BR><FONT SIZE=3D2>&gt; optimizer</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;&nbsp; &gt; to be available. Is there =
a way to check for it on my own for eg. </FONT>
<BR><FONT SIZE=3D2>&gt; on the</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;&nbsp; &gt; dashboard?</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; =
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp; </FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; =
-----------------------------------------------------</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; Confidentiality Notice.</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; This email message is for the sole =
use of the intended recipient(s) and</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; may contain confidential and =
privileged information. Any unauthorized</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; review, use, disclosure or =
distribution is prohibited. If you are not</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; the intended recipient, please =
contact the sender by reply email and</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; destroy all copies of the original =
message. If you are the intended</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; recipient, please be advised that =
the content of this message is subject</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt; to access, review and disclosure by =
the sender's Email System </FONT>
<BR><FONT SIZE=3D2>&gt; Administrator.</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; &gt;</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
<BR><FONT =
SIZE=3D2>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT>
<BR><FONT SIZE=3D2>&gt; =
----------------------------------------------------- </FONT>
<BR><FONT SIZE=3D2>&gt; Confidentiality Notice.</FONT>
<BR><FONT SIZE=3D2>&gt; This email message is for the sole use of the =
intended recipient(s) and </FONT>
<BR><FONT SIZE=3D2>&gt; may contain confidential and privileged =
information. Any unauthorized </FONT>
<BR><FONT SIZE=3D2>&gt; review, use, disclosure or distribution is =
prohibited. If you are not </FONT>
<BR><FONT SIZE=3D2>&gt; the intended recipient, please contact the =
sender by reply email and </FONT>
<BR><FONT SIZE=3D2>&gt; destroy all copies of the original message. If =
you are the intended </FONT>
<BR><FONT SIZE=3D2>&gt; recipient, please be advised that the content =
of this message is subject </FONT>
<BR><FONT SIZE=3D2>&gt; to access, review and disclosure by the =
sender's Email System Administrator.</FONT>
<BR><FONT SIZE=3D2>&gt; </FONT>
</P>
<BR>

<P><FONT =
SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT>
<BR><FONT =
SIZE=3D2>-----------------------------------------------------&nbsp; =
</FONT>
<BR><FONT SIZE=3D2>Confidentiality Notice. </FONT>
<BR><FONT SIZE=3D2>This email message is for the sole use of the =
intended recipient(s) and may contain confidential and privileged =
information. Any unauthorized review, use, disclosure or distribution =
is prohibited. If you are not the intended recipient, please contact =
the sender by reply email and destroy all copies of the original =
message. If you are the intended recipient, please be advised that the =
content of this message is subject to access, review and disclosure by =
the sender's Email System Administrator.</FONT></P>

</BODY>
</HTML>
------_=_NextPart_001_01C3D615.A17E7082--