############################################################################ # # 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 DecompressImage.py gdcmData/012345.002.050.dcm decompress.dcm """ import gdcm import sys if __name__ == "__main__": file1 = sys.argv[1] file2 = sys.argv[2] r = gdcm.ImageReader() r.SetFileName( file1 ) if not r.Read(): sys.exit(1) image = gdcm.Image() ir = r.GetImage() image.SetNumberOfDimensions( ir.GetNumberOfDimensions() ); dims = ir.GetDimensions(); print ir.GetDimension(0); print ir.GetDimension(1); print "Dims:",dims # Just for fun: dircos = ir.GetDirectionCosines() t = gdcm.Orientation.GetType(dircos) l = gdcm.Orientation.GetLabel(t) print "Orientation label:",l image.SetDimension(0, ir.GetDimension(0) ); image.SetDimension(1, ir.GetDimension(1) ); pixeltype = ir.GetPixelFormat(); image.SetPixelFormat( pixeltype ); pi = ir.GetPhotometricInterpretation(); image.SetPhotometricInterpretation( pi ); pixeldata = gdcm.DataElement( gdcm.Tag(0x7fe0,0x0010) ) str1 = ir.GetBuffer() #print ir.GetBufferLength() pixeldata.SetByteValue( str1, gdcm.VL( len(str1) ) ) image.SetDataElement( pixeldata ) w = gdcm.ImageWriter() w.SetFileName( file2 ) w.SetFile( r.GetFile() ) w.SetImage( image ) if not w.Write(): sys.exit(1)