/*========================================================================= Program: GDCM (Grassroots DICOM). A DICOM library Copyright (c) 2006-2011 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: * $ export LD_LIBRARY_PATH=$HOME/Projects/gdcm/debug-gcc/bin * $ mono bin/DecompressImage.exe gdcmData/012345.002.050.dcm rescaled.dcm */ using System; using gdcm; public class DecompressImage { public static int Main(string[] args) { string file1 = args[0]; ImageReader reader = new ImageReader(); reader.SetFileName( file1 ); bool ret = reader.Read(); if( !ret ) { return 1; } Image image = reader.GetImage(); PixelFormat pixeltype = image.GetPixelFormat(); Rescaler r = new Rescaler(); r.SetIntercept( 0 ); r.SetSlope( 1.2 ); r.SetPixelFormat( pixeltype ); PixelFormat outputpt = new PixelFormat( r.ComputeInterceptSlopePixelType() ); System.Console.WriteLine( "pixeltype" ); System.Console.WriteLine( pixeltype.toString() ); System.Console.WriteLine( "outputpt" ); System.Console.WriteLine( outputpt.toString() ); uint len = image.GetBufferLength(); short[] input = new short[ len / 2 ]; // sizeof(short) == 2 image.GetArray( input ); double[] output = new double[ len / 2 ]; r.Rescale( output, input, len ); // First Pixel is: System.Console.WriteLine( "Input:" ); System.Console.WriteLine( input[0] ); System.Console.WriteLine( "Output:" ); System.Console.WriteLine( output[0] ); return 0; } }