Actually I manually created the image (using the RawImageIO) and then
opted at first for .img extension when I was writing the file.<br>
<br>
Here is my code :<br>
<br>
<br>
-----<br>
template&lt;class T&gt;<br>
static void<br>
convert(VolumePars pars)<br>
{<br>
<br>
&nbsp; // declare types<br>
<br>
&nbsp; typedef T PixelType;<br>
&nbsp; typedef typename itk::Image&lt;PixelType,Dimension&gt; ImageType;<br>
&nbsp; typedef typename itk::RawImageIO&lt;PixelType,Dimension&gt; ImageIOType;<br>
&nbsp; typedef typename itk::ImageFileReader&lt;ImageType&gt; ReaderType;<br>
<br>
&nbsp; <br>
&nbsp; typename ReaderType::Pointer reader = ReaderType::New();<br>
&nbsp; typename ImageIOType::Pointer rawIO = ImageIOType::New();<br>
<br>
<br>
&nbsp; rawIO-&gt;SetFileDimensionality(3);<br>
&nbsp; rawIO-&gt;SetOrigin(0, pars.originX);<br>
&nbsp; rawIO-&gt;SetOrigin(1, pars.originY);<br>
&nbsp; rawIO-&gt;SetOrigin(2, pars.originZ);<br>
<br>
&nbsp; rawIO-&gt;SetDimensions(0, pars.dimX);<br>
&nbsp; rawIO-&gt;SetDimensions(1, pars.dimY);<br>
&nbsp; rawIO-&gt;SetDimensions(2, pars.dimZ);<br>
<br>
&nbsp; rawIO-&gt;SetSpacing(0, pars.spacingX);<br>
&nbsp; rawIO-&gt;SetSpacing(1, pars.spacingY);<br>
&nbsp; rawIO-&gt;SetSpacing(2, pars.spacingZ);<br>
<br>
&nbsp; rawIO-&gt;SetByteOrderToLittleEndian();<br>
<br>
&nbsp; reader-&gt;SetFileName(pars.inputBuffer.c_str());<br>
&nbsp; reader-&gt;SetImageIO( rawIO );<br>
<br>
&nbsp; try { reader-&gt;Update(); } catch(itk::ExceptionObject&amp; excp)<br>
&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; std::cerr &lt;&lt; &quot;Exception caught
while reading file &quot; &lt;&lt; reader-&gt;GetFileName() &lt;&lt;
std::endl<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;&lt; excp &lt;&lt; std::endl;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(1);<br>
&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp; std::cout &lt;&lt; &quot;done reading RAW image PARAMETERS\n&quot;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;&lt; &quot;sizes = &quot; &lt;&lt;
reader-&gt;GetOutput()-&gt;GetLargestPossibleRegion().GetSize()
&lt;&lt; std::endl<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;&lt; &quot;origin = &quot; &lt;&lt; reader-&gt;GetOutput()-&gt;GetOrigin() &lt;&lt; std::endl<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;&lt; &quot;spacing = &quot; &lt;&lt;
reader-&gt;GetOutput()-&gt;GetSpacing()&nbsp; &lt;&lt; std::endl;<br>
&nbsp; <br>
&nbsp; typedef typename itk::ImageFileWriter&lt;ImageType&gt; WriterType;<br>
&nbsp; typename WriterType::Pointer writer = WriterType::New();<br>
<br>
&nbsp; writer-&gt;SetFileName(pars.outputFileName.c_str());<br>
&nbsp; writer-&gt;SetInput(reader-&gt;GetOutput());<br>
&nbsp; try { writer-&gt;Update(); } catch(itk::ExceptionObject&amp; excp)<br>
&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; std::cerr &lt;&lt; &quot;Exception caught while writing\n&quot;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;&lt; excp &lt;&lt; std::endl;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(1);<br>
&nbsp;&nbsp;&nbsp; }<br>
<br>
}<br>
<br>
------<br>
<br>
As you can see, the origin of the image is displayed before the image is saved.<br>
<br>
After noticing that I had some placement problems, I wrote another
binary which was just loading an image in ITK and displaying the information.
When using the .img extension, the origin information was lost.<br>
<br>
I looked very briefly in the itkAnalyzeImageIO.cxx file and it appears
some origin information is written in some metadata associated with the
image. I have seen on the internet some proposal to include orientation
information which used the same mechanism.<br>
<br>Thanks,<br>
<br>
<div><span class="gmail_quote">On 12/9/05, <b class="gmail_sendername">Karthik Krishnan</b> &lt;<a href="mailto:Karthik.Krishnan@kitware.com">Karthik.Krishnan@kitware.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Please let us know what format you converted from ? The bug might be<br>that the origin data was never read in .<br><br>I've written analyse images in ITK before and they seem to retain the<br>origin information.<br><br>I have observed that InsightApplications/ImageViewer does not respect
<br>image origins when it reads files. So are you basing your assumptions on<br>images seen using ImageViewer ? If you use any of the several other<br>viewers, you should find that the origin info is recorded.<br><br>thanks
<br>karthik<br><br>Gheorghe Postelnicu wrote:<br><br>&gt; Hi,<br>&gt;<br>&gt; I have recently used ITK to convert some files to the Analyze format<br>&gt; and I have noticed that the origin data is lost when writing the<br>
&gt; volume file. I haven't gone further than this, but is this normal?<br>&gt;<br>&gt; As far as I am concerned, this is quite annoying when doing registration.<br>&gt;<br>&gt; Thanks,<br>&gt; --<br>&gt; Gheorghe Postelnicu, PhD
<br>&gt; MGH, Harvard Medical School<br>&gt;<br>&gt;------------------------------------------------------------------------<br>&gt;<br>&gt;_______________________________________________<br>&gt;Insight-users mailing list
<br>&gt;<a href="mailto:Insight-users@itk.org">Insight-users@itk.org</a><br>&gt;<a href="http://www.itk.org/mailman/listinfo/insight-users">http://www.itk.org/mailman/listinfo/insight-users</a><br>&gt;<br>&gt;<br></blockquote>
</div><br><br clear="all"><br>-- <br>Gheorghe Postelnicu, PhD<br>MGH, Harvard Medical School