<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.6000.16525" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff background="">
<DIV><FONT face=Arial size=2>Yes, it works fine. Thanks a lot !</FONT></DIV>
<BLOCKQUOTE dir=ltr 
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV 
  style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B> 
  <A title=blezek@crd.ge.com href="mailto:blezek@crd.ge.com">Blezek, Daniel J 
  (GE, Research)</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>To:</B> <A title=itk@fete.ch 
  href="mailto:itk@fete.ch">Nic</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Cc:</B> <A title=insight-users@itk.org 
  href="mailto:insight-users@itk.org">ITK</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Sent:</B> Friday, August 24, 2007 4:57 
  PM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> RE: [Insight-users] Quaternions 
  and Euler rotations</DIV>
  <DIV><BR></DIV>
  <DIV dir=ltr align=left><SPAN class=140595014-24082007><FONT face=Arial 
  color=#0000ff size=2>Hi Nic,</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=140595014-24082007><FONT face=Arial 
  color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
  <DIV dir=ltr align=left><SPAN class=140595014-24082007><FONT face=Arial 
  color=#0000ff size=2>&nbsp; Here's a good quaternion tutorial: <A 
  href="http://www.itk.org/CourseWare/Training/QuaternionsI.pdf">http://www.itk.org/CourseWare/Training/QuaternionsI.pdf</A>&nbsp; 
  I think you might want to read this first.&nbsp; Versors are unit quaternions, 
  i.e., they can't represent scaling.&nbsp; You can set a itk::Versor using a 
  vnl_quaternion -- <A 
  href="http://www.itk.org/Doxygen/html/classitk_1_1Versor.html">http://www.itk.org/Doxygen/html/classitk_1_1Versor.html</A>&nbsp;for 
  documentation.</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=140595014-24082007><FONT face=Arial 
  color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
  <DIV dir=ltr align=left><SPAN class=140595014-24082007><FONT face=Arial 
  color=#0000ff size=2>&nbsp; From a quaternion, you can get the axis and angle 
  as:</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=140595014-24082007><FONT face=Arial 
  color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
  <DIV dir=ltr align=left><SPAN class=140595014-24082007><FONT face=Arial 
  color=#0000ff size=2>&nbsp; RR.axis()</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=140595014-24082007><FONT face=Arial 
  color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
  <DIV dir=ltr align=left><SPAN class=140595014-24082007><FONT face=Arial 
  color=#0000ff size=2>&nbsp; RR.angle()</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=140595014-24082007><FONT face=Arial 
  color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
  <DIV dir=ltr align=left><SPAN class=140595014-24082007><FONT face=Arial 
  color=#0000ff size=2><A 
  href="http://www.lems.brown.edu/vision/vxl_doc/html/core/vnl/html/classvnl__quaternion.html">http://www.lems.brown.edu/vision/vxl_doc/html/core/vnl/html/classvnl__quaternion.html</A></FONT></SPAN></DIV><BR>
  <BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
    <DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
    <HR tabIndex=-1>
    <FONT face=Tahoma size=2><B>From:</B> Nic [mailto:itk@fete.ch] 
    <BR><B>Sent:</B> Friday, August 24, 2007 10:26 AM<BR><B>To:</B> Blezek, 
    Daniel J (GE, Research)<BR><B>Subject:</B> Re: [Insight-users] Quaternions 
    and Euler rotations<BR></FONT><BR></DIV>
    <DIV></DIV>
    <DIV><FONT face=Arial size=2>Ok, thx ! :)<BR>So, if I understand well, in my 
    example:</FONT></DIV>
    <DIV><FONT face=Arial size=2>- RotX would be 0</FONT></DIV>
    <DIV><FONT face=Arial size=2>-&nbsp;RotY would be Pi</FONT></DIV>
    <DIV><FONT face=Arial size=2>-&nbsp;and RotZ an angle in 
radians</FONT></DIV>
    <DIV><FONT face=Arial size=2></FONT><FONT face=Arial size=2></FONT><FONT 
    face=Arial size=2></FONT><BR><FONT face=Arial size=2>But what about the 
    <FONT color=#ff0000><STRONG>angle of the versor</STRONG></FONT> I have to 
    set for the rotation ? How do I compute it ?<BR></FONT></DIV>
    <DIV><FONT face=Arial size=2>In my code now :</FONT></DIV>
    <DIV><FONT face=Arial size=2></FONT><FONT face=Arial size=2></FONT><FONT 
    face=Arial size=2></FONT><FONT face=Arial size=2></FONT><BR><FONT face=Arial 
    color=#008000 size=2><STRONG>axis[0] = RR[0];<BR>axis[1] = RR[1];<BR>axis[2] 
    = RR[2];</STRONG></FONT></DIV><FONT face=Arial size=2></FONT><FONT 
    face=Arial size=2></FONT>
    <DIV><FONT face=Arial size=2></FONT><FONT face=Arial size=2></FONT><BR><FONT 
    face=Arial size=2>rotation.Set( <FONT 
    color=#008000><STRONG>axis</STRONG></FONT>, <FONT 
    color=#ff0000><STRONG>angleVersor</STRONG></FONT>);<BR>transform-&gt;SetRotation( 
    rotation );<BR>registration-&gt;SetInitialTransformParameters( 
    transform-&gt;GetParameters() );<BR></FONT></DIV>
    <DIV><FONT face=Arial size=2>By the way, what is the rule you employ for 
    setting your quaternion like this ? Or do you have a ressource on the web 
    where it is explained how it works ?</FONT></DIV>
    <DIV><FONT face=Arial><FONT size=2>I never heard before about Quaternion, 
    thus it's a bit new for me :)</FONT></FONT></DIV>
    <DIV><FONT face=Arial><FONT size=2></FONT></FONT>&nbsp;</DIV>
    <DIV><FONT face=Arial><FONT size=2></FONT></FONT>&nbsp;</DIV>
    <DIV><FONT face=Arial><FONT size=2><FONT 
    size=+0>&nbsp;</DIV></FONT></FONT></FONT>
    <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
    <DIV><FONT face=Arial size=2></FONT><BR><FONT face=Arial size=2>----- 
    Original Message ----- <BR>From: Blezek, Daniel J (GE, Research) <BR>To: Nic 
    ; ITK <BR>Sent: Friday, August 24, 2007 2:37 PM<BR>Subject: RE: 
    [Insight-users] Quaternions and Euler rotations<BR></FONT></DIV>
    <DIV><FONT face=Arial size=2>Hi Nic,<BR><BR>Here is some example code, it 
    uses the vnl package included with Inisght.&nbsp; RMat contians the 3x3 
    rotation matrix, while RR contains the initialized 
    Quaternion.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 
    Rotate!<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double RotX, RotY, 
    RotZ;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RotX = InitialRotation[0] * 
    vnl_math::pi / 180.0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RotY = 
    InitialRotation[1] * vnl_math::pi / 180.0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    RotZ = InitialRotation[2] * vnl_math::pi / 
    180.0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vnl_quaternion&lt;double&gt; 
    Rx(vcl_sin(RotX/2.0), 0, 0, 
    vcl_cos(RotX/2.0));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    vnl_quaternion&lt;double&gt; Ry(0, vcl_sin(RotY/2.0), 0, 
    vcl_cos(RotY/2.0));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    vnl_quaternion&lt;double&gt; Rz(0, 0, vcl_sin(RotZ/2.0), 
    vcl_cos(RotZ/2.0));<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    vnl_quaternion&lt;double&gt; RR = Rx * Ry * 
    Rz;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vnl_matrix_fixed&lt;double,3,3&gt; 
    RMat = RR.rotation_matrix_transpose();<BR><BR>-dan<BR><BR><BR><BR>From: 
    insight-users-bounces+blezek=crd.ge.com@itk.org 
    [mailto:insight-users-bounces+blezek=crd.ge.com@itk.org] On Behalf Of 
    Nic<BR>Sent: Friday, August 24, 2007 7:12 AM<BR>To: Insight 
    Users<BR>Subject: [Insight-users] Quaternions and Euler 
    rotations<BR><BR><BR>Hello,<BR>&nbsp;&nbsp;&nbsp; doing a 3D registration of 
    two stacks as in example 8.6.1 and using itkVersorRigid3DTransform, I would 
    like to calculate the 3 axis components and the angle of the Versor 
    resulting from:<BR>&nbsp;&nbsp;&nbsp; - a rotation of a certain angle around 
    z-axis<BR>&nbsp;&nbsp;&nbsp; - a 180°rotation around 
    y-axis<BR>&nbsp;&nbsp;&nbsp; - no rotation around x-axis<BR>This is because 
    I would like to initialize my transform before launching.<BR>Does anyone 
    have an idea how to calculate it ? Seems that I have to calculate 
    Quaternions; trying to do it actually but I not really used with..<BR>Thx, 
    nic</FONT></DIV></BLOCKQUOTE></BLOCKQUOTE></BODY></HTML>