Hello,<br><br>I use visualstudio2010 and I am trying to read an image, then extract a region from the image and finally apply a median filter on the image&#39;s extracted area, getting the final image using a writer object. I created the four needed objects (reader, region, median filter, writer) as it is shown in the code bellow. But when I built my project, I get the following failure:(<i> &#39;FilterType&#39; : redefinition; different basic types</i>). I can understand that my wrong was that I used the same FilterType for both  <i>itk::RegionOfInterestImageFilter</i> and <i> itk::MedianImageFilter</i>, but I don&#39;t know how to solve it. Any ideas?<br>
<br>Thanks in advance.<br><br><br><br>--------------------------code----------------------------<br>----------------------------------------------------<br><br>#include &quot;itkImageFileReader.h&quot;<br>#include &quot;itkImageFileWriter.h&quot;<br>
<br>#include &quot;itkRegionOfInterestImageFilter.h&quot;<br>#include &quot;itkMedianImageFilter.h&quot;<br><br><br>#include &quot;itkImage.h&quot;<br><br><br>int main( int argc, char ** argv )<br>{<br>  // Verify the number of parameters in the command line<br>
  if( argc &lt; 7 )<br>    {<br>    std::cerr &lt;&lt; &quot;Usage: &quot; &lt;&lt; std::endl;<br>    std::cerr &lt;&lt; argv[0] &lt;&lt; &quot; inputImageFile  outputImageFile &quot; &lt;&lt; std::endl;<br>    std::cerr &lt;&lt; &quot; startX startY sizeX sizeY&quot; &lt;&lt; std::endl;<br>
    return EXIT_FAILURE;<br>    }<br><br><br>  // set  pixel and image type<br>  typedef unsigned short        InputPixelType;<br>  typedef unsigned short        OutputPixelType;<br>  const   unsigned int        Dimension = 2;<br>
<br>  typedef itk::Image&lt; InputPixelType,  Dimension &gt;    InputImageType;<br>  typedef itk::Image&lt; OutputPixelType, Dimension &gt;    OutputImageType;<br><br><br><br>  // set reader and writer object<br>  typedef itk::ImageFileReader&lt; InputImageType  &gt;  ReaderType;<br>
  typedef itk::ImageFileWriter&lt; OutputImageType &gt;  WriterType;<br><br><br> <span style="background-color: rgb(255, 255, 153);"> typedef itk::RegionOfInterestImageFilter&lt; InputImageType, </span><br style="background-color: rgb(255, 255, 153);">
<span style="background-color: rgb(255, 255, 153);">                                            OutputImageType &gt; FilterType;</span><br><br>  FilterType::Pointer region = FilterType::New();<br><br>  // Software Guide : BeginCodeSnippet<br>
  OutputImageType::IndexType start;<br>  start[0] = atoi( argv[3] );<br>  start[1] = atoi( argv[4] );<br>  // Software Guide : EndCodeSnippet<br><br><br>  //  start of  region<br>  OutputImageType::SizeType size;<br>  size[0] = atoi( argv[5] );<br>
  size[1] = atoi( argv[6] );<br><br><br>  // size of region<br>  OutputImageType::RegionType desiredRegion;<br>  desiredRegion.SetSize(  size  );<br>  desiredRegion.SetIndex( start );<br><br>  // Set region of interest<br>
  region-&gt;SetRegionOfInterest( desiredRegion );<br> <br>  // Create reader and writer object<br>  ReaderType::Pointer reader = ReaderType::New();<br>  WriterType::Pointer writer = WriterType::New();<br><br>  // Set the input and output filename on the reader and writer respectively<br>
  const char * inputFilename  = argv[1];<br>  const char * outputFilename = argv[2];<br><br><br>  reader-&gt;SetFileName( inputFilename  );<br>  writer-&gt;SetFileName( outputFilename );<br> <br>  //////////////////////////////////////////////<br>
  //////////////////////////////////////////////<br>   // Set and create median filter<br><br><br> <span style="background-color: rgb(255, 255, 153);"> typedef itk::MedianImageFilter&lt;</span><br style="background-color: rgb(255, 255, 153);">
<span style="background-color: rgb(255, 255, 153);">               InputImageType, OutputImageType &gt;  FilterType;</span><br><br>  FilterType::Pointer filter = FilterType::New();<br><br><br>  // set the neighborhood of median filter. Here 3x3.<br>
  InputImageType::SizeType indexRadius;<br>  <br>  indexRadius[0] = 1; // radius along x<br>  indexRadius[1] = 1; // radius along y<br><br>  filter-&gt;SetRadius( indexRadius );<br><br>  /////////////////////////////////////////////////<br>
  ///////////////////////////////////////<br><br>  // pipeline <br>  region-&gt;SetInput( reader-&gt;GetOutput() );<br>  filter-&gt;SetInput( region-&gt;GetOutput() );<br>  writer-&gt;SetInput( filter-&gt;GetOutput() );<br>
 <br><br><br>  // try-catch update of the filters<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 EXIT_FAILURE;<br>    } <br><br><br><br>  return EXIT_SUCCESS;<br>}<br><br><br>