Hello,<br>I am relatively new to ITK and VTK.  I am trying to read a 
DICOM series into ITK and display it with a simple viewer using VTK and 
KWWidgets.  When I load the series in ITK, the axial images are 
upside-down and the sagittal images are flipped left-right.    If I try 
doing it all in VTK (vtkDicomImageReader), the sagittal and coronal 
images are upside-down.  I have seen this issue touched on before, but I
 couldn&#39;t find a good solution. Key parts of my code are below.  I am using ITK 3.20 and VTK 5.6.1 on Ubuntu Linux 
10.10. <br>
<br>******************************<div id=":ap">**********************************************************************************************************************<br><br>    // initialize ITK DICOM reader<br>    typedef unsigned short PixelType;<br>

    const unsigned int Dimension = 3;<br><br>    typedef itk::Image&lt;PixelType, Dimension&gt; ImageType;<br>    typedef itk::ImageSeriesReader&lt; ImageType &gt; ReaderType;<br>    ReaderType::Pointer reader = ReaderType::New();<br>

<br>    <br><br>    typedef itk::GDCMImageIO ImageIOType;<br>    ImageIOType::Pointer dicomIO = ImageIOType::New();<br>    reader-&gt;SetImageIO( dicomIO );<br><br>    typedef itk::GDCMSeriesFileNames NamesGeneratorType;<br>

    NamesGeneratorType::Pointer nameGenerator = NamesGeneratorType::New();<br>    nameGenerator-&gt;SetUseSeriesDetails( true );<br>    nameGenerator-&gt;SetInputDirectory( &quot;DICOM&quot; );<br>    const ReaderType::FileNamesContainer &amp; filenames = nameGenerator-&gt;GetInputFileNames();<br>

<br>    reader-&gt;SetFileNames( filenames );<br><br>    try<br>    {<br>    reader-&gt;Update();<br>    }<br>    catch (itk::ExceptionObject &amp;ex)<br>    {<br>    std::cout &lt;&lt; ex &lt;&lt; std::endl;<br>    return EXIT_FAILURE;<br>

    }<br><br>   // now connect to VTK<br>    typedef itk::ImageToVTKImageFilter&lt; ImageType&gt; ConnectorType;<br>
    ConnectorType::Pointer connector = ConnectorType::New();<br>    connector-&gt;SetInput( reader-&gt;GetOutput() );<br><br>     vtkImageViewer2     *viewer = vtkImageViewer2::New();<br><br>   
 //Create a VTK image viewer, set it up so that it uses our render 
widget, set its input to the output of the reader, reset the camera to 
center the whole slice<br>
    viewer-&gt;SetRenderWindow(rw-&gt;GetRenderWindow()); <br>    viewer-&gt;SetRenderer(rw-&gt;GetRenderer());<br>    viewer-&gt;SetInput(connector-&gt;GetOutput());<br>    viewer-&gt;SetupInteractor(rw-&gt;GetRenderWindow()-&gt;GetInteractor());<br>

    rw-&gt;ResetCamera();        <br><br>    //Retrieve the corner 
annotation object from the render widget, point it to the viewer actor 
and window/level filter, and let it display both slice and window/level 
in different corners using tags<br>
    vtkCornerAnnotation *ca = rw-&gt;GetCornerAnnotation();<br>    ca-&gt;SetImageActor(viewer-&gt;GetImageActor());<br>    ca-&gt;SetWindowLevel(viewer-&gt;GetWindowLevel());<br>    ca-&gt;SetText(2,&quot;&lt;slice&gt;&quot;);<br>

    ca-&gt;SetText(3,&quot;&lt;window&gt;\n&lt;level&gt;&quot;);<br>        <br>   
 //Create a scale object in our window, set its range to match the 
number of slices, set its callback to use its value to set the slice in 
the viewer, pack the scale in our window below the render widget<br>
    vtkKWScale *slice_scale = vtkKWScale::New();<br>    slice_scale-&gt;SetParent(win-&gt;GetViewFrame());<br>    slice_scale-&gt;Create();<br>    slice_scale-&gt;SetRange(viewer-&gt;GetSliceMin(),viewer-&gt;GetSliceMax());<br>

    slice_scale-&gt;SetCommand(viewer, &quot;SetSlice&quot;);<br>    app-&gt;Script(&quot;pack %s -side top -expand n -fill x&quot;, slice_scale-&gt;GetWidgetName());<br>        <br><br>******************************************************************************************************************************************************<br>

<br>Alex<br>
</div>