[Insight-users] Mystery solved

Radhika Sivaramakrishna radhika.sivaramakrishna at synarc.com
Thu, 15 Jan 2004 12:56:23 -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_01C3DBAA.08E25AE2
Content-Type: text/plain



Hi Luis and Jim,

You were right. The spacing was correct, however origin had been
Reinitialized to 0 when I saved to Raw and this obviously remained when I
Converted to Analyze which explains the difference in center of rotation.
I found that the original DICOM series had an origin of:

Origin: -125.969  75.2403  122.094.

Thanks for helping sort this out.
Radhika


-----Original Message-----
From: Luis Ibanez [mailto:luis.ibanez at kitware.com] 
Sent: Thursday, January 15, 2004 11:50 AM
To: Radhika Sivaramakrishna
Cc: 'insight-users at itk.org'
Subject: Re: [Insight-users] Image registration - 2 different initializati
ons


Radhika,

When you converted the DICOM series to RAW and then
to Analyze format,.... how did you transferred the values
of image origin and image spacing ?

It is very likely that in the conversion process, the image
spacing was lost and the Analyze image got created with
a ficticious (anddangerous) spacing like  1.0 x 1.0 x 1.0.

Keep in mind that registration is performed in physical
units, not in pixels.   If the image spacing information got
corrupted, the values of the initializer will be corrupted
as well.


You can easily check the image spacing by invoking

                   image->Print( std::cout );

or more specifically

         std::cout <<  image->GetSpacing() << std::endl;


If you need to convert DICOM to Analyze you can
simply use MRIConvert (see previous email from
Jolinda Smith) or you can use the example program:

     Insight/Examples/IO/
                     DicomSeriesReadImageWrite.cxx
   
They will keep the image origin and spacing
information.



Regards,


   Luis


-----------------------------------
Radhika Sivaramakrishna wrote:

> Hi Luis,
> I am really sorry about this. I think I pasted the wrong thing from my 
> output.
>
> Here it is with the DicomSeries -> Raw -> Analyze run:
>
> Transform center before Initializer 0  0  0
>  Transform center after Initializer 123.619  150.723  97.2895
> Intial Parameters =
> [0, 0, 0, 0.661387, 1.31363, -0.631911]
>  Translationscale   = 1000
>
> Here it is with the Dicom series run:
>
>
> Transform center before Initializer 0  0  0
>  Transform center after Initializer -2.34973  225.964  219.384
> Intial Parameters =
> [0, 0, 0, -0.0650073, 1.4008, -2.19123]
>  Translationscale   = 1000
>
> Thanks
> Radhika
>


                                                     
-----------------------------------------------------  
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_01C3DBAA.08E25AE2
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>Mystery solved</TITLE>
</HEAD>
<BODY>
<BR>
<BR>

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

<P><FONT SIZE=3D2>You were right. The spacing was correct, however =
origin had been</FONT>
<BR><FONT SIZE=3D2>Reinitialized to 0 when I saved to Raw and this =
obviously remained when I</FONT>
<BR><FONT SIZE=3D2>Converted to Analyze which explains the difference =
in center of rotation.</FONT>
<BR><FONT SIZE=3D2>I found that the original DICOM series had an origin =
of:</FONT>
</P>

<P><FONT SIZE=3D2>Origin: -125.969&nbsp; 75.2403&nbsp; 122.094.</FONT>
</P>

<P><FONT SIZE=3D2>Thanks for helping sort this out.</FONT>
<BR><FONT SIZE=3D2>Radhika</FONT>
</P>
<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 15, 2004 11:50 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: [Insight-users] Image registration - 2 =
different initializati ons</FONT>
</P>
<BR>

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

<P><FONT SIZE=3D2>When you converted the DICOM series to RAW and =
then</FONT>
<BR><FONT SIZE=3D2>to Analyze format,.... how did you transferred the =
values</FONT>
<BR><FONT SIZE=3D2>of image origin and image spacing ?</FONT>
</P>

<P><FONT SIZE=3D2>It is very likely that in the conversion process, the =
image</FONT>
<BR><FONT SIZE=3D2>spacing was lost and the Analyze image got created =
with</FONT>
<BR><FONT SIZE=3D2>a ficticious (anddangerous) spacing like&nbsp; 1.0 x =
1.0 x 1.0.</FONT>
</P>

<P><FONT SIZE=3D2>Keep in mind that registration is performed in =
physical</FONT>
<BR><FONT SIZE=3D2>units, not in pixels.&nbsp;&nbsp; If the image =
spacing information got</FONT>
<BR><FONT SIZE=3D2>corrupted, the values of the initializer will be =
corrupted</FONT>
<BR><FONT SIZE=3D2>as well.</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>You can easily check the image spacing by =
invoking</FONT>
</P>

<P><FONT =
SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; image-&gt;Print( =
std::cout );</FONT>
</P>

<P><FONT SIZE=3D2>or more specifically</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
std::cout &lt;&lt;&nbsp; image-&gt;GetSpacing() &lt;&lt; =
std::endl;</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>If you need to convert DICOM to Analyze you =
can</FONT>
<BR><FONT SIZE=3D2>simply use MRIConvert (see previous email =
from</FONT>
<BR><FONT SIZE=3D2>Jolinda Smith) or you can use the example =
program:</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp; Insight/Examples/IO/</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; =
DicomSeriesReadImageWrite.cxx</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; </FONT>
<BR><FONT SIZE=3D2>They will keep the image origin and spacing</FONT>
<BR><FONT SIZE=3D2>information.</FONT>
</P>
<BR>
<BR>

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

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

<P><FONT SIZE=3D2>-----------------------------------</FONT>
<BR><FONT SIZE=3D2>Radhika Sivaramakrishna wrote:</FONT>
</P>

<P><FONT SIZE=3D2>&gt; Hi Luis,</FONT>
<BR><FONT SIZE=3D2>&gt; I am really sorry about this. I think I pasted =
the wrong thing from my </FONT>
<BR><FONT SIZE=3D2>&gt; output.</FONT>
<BR><FONT SIZE=3D2>&gt;</FONT>
<BR><FONT SIZE=3D2>&gt; Here it is with the DicomSeries -&gt; Raw -&gt; =
Analyze run:</FONT>
<BR><FONT SIZE=3D2>&gt;</FONT>
<BR><FONT SIZE=3D2>&gt; Transform center before Initializer 0&nbsp; =
0&nbsp; 0</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; Transform center after Initializer =
123.619&nbsp; 150.723&nbsp; 97.2895</FONT>
<BR><FONT SIZE=3D2>&gt; Intial Parameters =3D</FONT>
<BR><FONT SIZE=3D2>&gt; [0, 0, 0, 0.661387, 1.31363, -0.631911]</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; Translationscale&nbsp;&nbsp; =3D =
1000</FONT>
<BR><FONT SIZE=3D2>&gt;</FONT>
<BR><FONT SIZE=3D2>&gt; Here it is with the Dicom series run:</FONT>
<BR><FONT SIZE=3D2>&gt;</FONT>
<BR><FONT SIZE=3D2>&gt;</FONT>
<BR><FONT SIZE=3D2>&gt; Transform center before Initializer 0&nbsp; =
0&nbsp; 0</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; Transform center after Initializer =
-2.34973&nbsp; 225.964&nbsp; 219.384</FONT>
<BR><FONT SIZE=3D2>&gt; Intial Parameters =3D</FONT>
<BR><FONT SIZE=3D2>&gt; [0, 0, 0, -0.0650073, 1.4008, -2.19123]</FONT>
<BR><FONT SIZE=3D2>&gt;&nbsp; Translationscale&nbsp;&nbsp; =3D =
1000</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>
</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_01C3DBAA.08E25AE2--