<span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">Hi,<br><br>I am new to ITK and I am trying to read the Analyse 7.5 image.<br>Its an image created by imageJ and is a 16 bit grayscale image of the<br>
dimension 512*512*24<br><br>I am getting a segmentation fault while doing reader1-&gt;update().<br>The code is a sample code which reads an image and writes it back. I am<br>using iterators because they will help manipulate the image for other<br>
purposes.<br><br>Heres the code.<br><br>#include &quot;itkImage.h&quot;<br>#include &quot;itkImageRegionConstIterator.h&quot;<br>#include &quot;itkImageRegionIterator.h&quot;<br>#include &quot;itkImageFileReader.h&quot;<br>
#include &quot;itkImageFileWriter.h&quot;<br>#include &quot;itkRGBPixel.h&quot;<br>#include &quot;stdio.h&quot;<br>using namespace std;<br><br>int main()<br>{<br> const unsigned char Dimension = 3;<br><br> typedef signed short PixelType;<br>
 typedef itk::Image&lt; PixelType, Dimension &gt; ImageType;<br><br> typedef itk::ImageRegionConstIterator&lt; ImageType &gt; ConstIteratorType;<br> typedef itk::ImageRegionIterator&lt; ImageType&gt;       IteratorType;<br>
<br> typedef itk::ImageFileReader&lt; ImageType &gt; ReaderType;<br> typedef itk::ImageFileWriter&lt; ImageType &gt; WriterType;<br><br> ImageType::RegionType inputRegion;<br><br> ImageType::RegionType::IndexType inputStart;<br>
 // Imput image size<br> ImageType::RegionType::SizeType  size_ip;<br> // Output image size<br> ImageType::RegionType::SizeType  size_op;<br><br> inputStart[0] = 0;<br> inputStart[1] = 0;<br> inputStart[2] = 0;<br><br> size_ip[0]  = 512;<br>
 size_ip[1]  = 512;<br> size_ip[2]  = 24;<br><br> inputRegion.SetSize( size_ip );<br> inputRegion.SetIndex( inputStart );<br><br> ImageType::RegionType outputRegion;<br><br> ImageType::RegionType::IndexType outputStart;<br>
<br> outputStart[0] = 0;<br> outputStart[1] = 0;<br> outputStart[2] = 0;<br><br> outputRegion.SetSize( size_ip );<br> outputRegion.SetIndex( outputStart );<br><br><br> ReaderType::Pointer reader1 = ReaderType::New();<br> reader1-&gt;SetFileName( &quot;psf-green-bead-35nm.img&quot; );<br>
 try<br>   {<br>   reader1-&gt;Update();<br>   }<br> catch ( itk::ExceptionObject &amp;err)<br>   {<br>   std::cerr &lt;&lt; &quot;ExceptionObject caught !&quot; &lt;&lt; std::endl;<br>   std::cerr &lt;&lt; err &lt;&lt; std::endl;<br>
   return -1;<br>   }<br><br><br> ImageType::Pointer outputImage = ImageType::New();<br> outputImage-&gt;SetRegions( outputRegion );<br> const ImageType::SpacingType&amp; spacing =<br>reader1-&gt;GetOutput()-&gt;GetSpacing();<br>
 const ImageType::PointType&amp; inputOrigin =<br>reader1-&gt;GetOutput()-&gt;GetOrigin();<br> double   outputOrigin[ Dimension ];<br><br> for(unsigned int i=0; i&lt; Dimension; i++)<br>   {<br>   outputOrigin[i] = inputOrigin[i] + spacing[i] * inputStart[i];<br>
   }<br><br> outputImage-&gt;SetSpacing( spacing );<br> outputImage-&gt;SetOrigin(  outputOrigin );<br> outputImage-&gt;Allocate();<br><br> ConstIteratorType inputIt1(   reader1-&gt;GetOutput(), inputRegion  );<br> IteratorType outputIt( outputImage,outputRegion );<br>
<br> inputIt1.GoToBegin();<br> outputIt.GoToBegin();<br><br> while( !inputIt1.IsAtEnd() )<br> {<br>       outputIt.Set(inputIt1.Get());<br><br>   ++inputIt1;<br>       ++outputIt;<br> }<br><br> WriterType::Pointer writer = WriterType::New();<br>
 writer-&gt;SetFileName(&quot;copy.img&quot;);<br> writer-&gt;SetInput( outputImage );<br><br> try<br>   {<br>   writer-&gt;Update();<br>   }<br> catch ( itk::ExceptionObject &amp;err)<br>   {<br>   std::cerr &lt;&lt; &quot;ExceptionObject caught !&quot; &lt;&lt; std::endl;<br>
   std::cerr &lt;&lt; err &lt;&lt; std::endl;<br>   return -1;<br>   }<br><br><br>}<br><br><br>Can you please help?<br>Thank you in advance.</span>