# headsq2dcm.py

    ############################################################################
    #
    #  Program: GDCM (Grassroots DICOM). A DICOM library
    #  Module:  $URL$
    #
    #  Copyright (c) 2006-2010 Mathieu Malaterre
    #  All rights reserved.
    #  See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details.
    #
    #     This software is distributed WITHOUT ANY WARRANTY; without even
    #     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
    #     PURPOSE.  See the above copyright notice for more information.
    #
    ############################################################################

    """
    Usage:
     python headsq2dcm.py -D /path/to/VTKData
    """

    import vtk
    import vtkgdcm
    from vtk.util.misc import vtkGetDataRoot
    VTK_DATA_ROOT = vtkGetDataRoot()

    reader = vtk.vtkVolume16Reader()
    reader.SetDataDimensions(64, 64)
    reader.SetDataByteOrderToLittleEndian()
    reader.SetFilePrefix(VTK_DATA_ROOT + "/Data/headsq/quarter")
    reader.SetImageRange(1, 93)
    reader.SetDataSpacing(3.2, 3.2, 1.5)

    cast = vtk.vtkImageCast()
    cast.SetInput( reader.GetOutput() )
    cast.SetOutputScalarTypeToUnsignedChar()

    # By default this is creating a Multiframe Grayscale Word Secondary Capture Image Storage
    writer = vtkgdcm.vtkGDCMImageWriter()
    writer.SetFileName( "headsq.dcm" )
    writer.SetInput( reader.GetOutput() )
    # cast -> Multiframe Grayscale Byte Secondary Capture Image Storage
    #writer.SetInput( cast.GetOutput() )
    writer.SetFileDimensionality( 3 )
    writer.Write()