<br>Hi Wenjia,<br><br>Yes, <br>you will be able to make your programs assume an <br>identity transform by default if you do:<br><br><ul><li>Use itk::Image, and not itk::OrientedImage, and</li><li>Set ITK_IMAGE_BEHAVES_AS_ORIENTED_IMAGE = OFF<br>
</li></ul><br>Note that this is just to recover the previous behavior of your<br>code, however, it will be very dangerous to use this configuration<br>for any clinical application in which you need to produce reliable<br>
locations associated with the image data.<br><br><br>E.g. Don&#39;t do this if you are working in surgery planning or <br>       surgery guidance.<br><br><br>    Regards,<br><br><br>          Luis<br><br><br>---------------------------------------------------------------------------<br>
<div class="gmail_quote">On Sun, Aug 16, 2009 at 8:45 AM, wenjia <span dir="ltr">&lt;<a href="mailto:wenjia@robots.ox.ac.uk">wenjia@robots.ox.ac.uk</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi Luis,<br>
<br>
I have not noticed the orientation problem before and written a lot of programs assuming the default direction to be identity. These programs work fine in ITK 3.8. However, after upgrading to ITK 3.14, a lot of programs function abnormally because itkImageBase starts using orientation information in conversion between index and physical point and the Analyze image has a non-identity direction.<br>

<br>
Is it possible to disable the default orientation of AnalyzeImageIO by setting ITK_USE_ORIENTED_IMAGE_DIRECTION=OFF when installing ITK 3.14?<br>
<br>
Many thanks,<br>
<font color="#888888">Wenjia<br>
</font><div><div></div><div class="h5"><br>
On 15 Aug 22:13, Luis Ibanez wrote:<br>
&gt;<br>
&gt; Hi Wenjia,<br>
&gt;<br>
&gt;<br>
&gt; Yes,<br>
&gt; this is the default orientation for Analyze images.<br>
&gt;<br>
&gt;<br>
&gt;    Regards<br>
&gt;<br>
&gt;<br>
&gt;        Luis<br>
&gt;<br>
&gt;<br>
&gt; ---------------------------<br>
&gt; On Sat, Aug 15, 2009 at 10:15 AM, wenjia &lt;<a href="mailto:wenjia@robots.ox.ac.uk">wenjia@robots.ox.ac.uk</a>&gt; wrote:<br>
&gt;<br>
&gt;     Dear all,<br>
&gt;<br>
&gt;     I have just found that when ITK reads an Analyze image with unknown<br>
&gt;     orientation, it does not set the default image direction to identity.<br>
&gt;     Instead, it sets the direction to<br>
&gt;<br>
&gt;      [1 0 0<br>
&gt;      0 0 -1<br>
&gt;      0 1 0].<br>
&gt;<br>
&gt;     I am wondering why it uses this direction as default. Is this direction<br>
&gt;     defined in any Analyze format standard? Is it possible to change the<br>
&gt;     default to an identity matrix since it is easy to cope with?<br>
&gt;<br>
&gt;     I have put a test Analyze file on the website: <a href="http://www.robots.ox.ac.uk/" target="_blank">http://www.robots.ox.ac.uk/</a><br>
&gt;     ~wenjia/data/<br>
&gt;<br>
&gt;     In addition, my ITK version is 3.14. I am using the following code for<br>
&gt;     reading the direction,<br>
&gt;<br>
&gt;     #include &quot;itkImage.h&quot;<br>
&gt;     #include &quot;itkImageFileReader.h&quot;<br>
&gt;<br>
&gt;     int main(int argc, char *argv[])<br>
&gt;     {<br>
&gt;      // Check the number of input arguments<br>
&gt;      if(argc &lt; 2){<br>
&gt;        std::cout &lt;&lt; &quot;Read an image and show its direction&quot; &lt;&lt; std::endl;<br>
&gt;        std::cout &lt;&lt; &quot;Usage: &quot; &lt;&lt; argv[0] &lt;&lt; &quot; image&quot; &lt;&lt; std::endl;<br>
&gt;        return -1;<br>
&gt;      }<br>
&gt;<br>
&gt;      const char *filename = argv[1];<br>
&gt;<br>
&gt;      // Read the image<br>
&gt;      const unsigned int Dimension = 3;<br>
&gt;      typedef double InternalPixelType;<br>
&gt;      typedef itk::Image&lt;InternalPixelType, Dimension&gt; ImageType;<br>
&gt;      typedef itk::ImageFileReader&lt;ImageType&gt; ImageReaderType;<br>
&gt;<br>
&gt;      ImageReaderType::Pointer reader = ImageReaderType::New();<br>
&gt;      reader-&gt;SetFileName(filename);<br>
&gt;      reader-&gt;Update();<br>
&gt;      ImageType::Pointer image = reader-&gt;GetOutput();<br>
&gt;<br>
&gt;      // Show the direction<br>
&gt;      std::cout &lt;&lt; &quot;The image direction is:&quot; &lt;&lt; std::endl;<br>
&gt;      std::cout &lt;&lt; image-&gt;GetDirection() &lt;&lt; std::endl;<br>
&gt;<br>
&gt;      return 0;<br>
&gt;     }<br>
&gt;<br>
&gt;<br>
&gt;     Many thanks,<br>
&gt;     Wenjia<br>
&gt;     --<br>
&gt;     Wenjia Bai<br>
&gt;     D.Phil Student<br>
&gt;     Wolfson Medical Vision Laboratory<br>
&gt;     Department of Engineering<br>
&gt;     University of Oxford<br>
&gt;     _____________________________________<br>
&gt;     Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
&gt;<br>
&gt;     Visit other Kitware open-source projects at<br>
&gt;     <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
&gt;<br>
&gt;     Please keep messages on-topic and check the ITK FAQ at: <a href="http://www.itk.org/" target="_blank">http://www.itk.org/</a><br>
&gt;     Wiki/ITK_FAQ<br>
&gt;<br>
&gt;     Follow this link to subscribe/unsubscribe:<br>
&gt;     <a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
&gt;<br>
&gt;<br>
</div></div></blockquote></div><br>