Dicom Series Reader

Overview

This example illustrates how to read a DICOM series into a 3D volume. Additional actions include printing some information, writing the image and possibly displaying it using the default display program via the SimpleITK Show function. The program makes several assumptions: the given directory contains at least one DICOM series, if there is more than one series the first series is read, and the default SimpleITK external viewer is installed.

See also Dicom Series Read Modify Write, Read Image Meta-Data Dictionary and Print.

Code

using System;
using System.Diagnostics;
using itk.simple;
using sitk = itk.simple.SimpleITK;


namespace itk.simple.examples {
    class DicomSeriesReader {

static void Main(string[] args) {
  try {
    if (args.Length < 2) {
      Console.WriteLine( "Usage: DicomSeriesReader <input_directory> <output_file>" );
      return;
    }

    Console.WriteLine( "Reading Dicom directory: " + args[0] );
    ImageSeriesReader reader = new ImageSeriesReader();

    VectorString dicom_names = ImageSeriesReader.GetGDCMSeriesFileNames( args[0] );
    reader.SetFileNames( dicom_names );

    Image image = reader.Execute();

    VectorUInt32 size = image.GetSize();
    Console.WriteLine( "Image size: " + size[0] + " " + size[1] + " " + size[2] );

    Console.WriteLine( "Writing image: " + args[1] );
    ImageFileWriter writer = new ImageFileWriter();
    writer.SetFileName( args[1] );
    writer.Execute( image );

    if (Environment.GetEnvironmentVariable("SITK_NOSHOW") == null)
      SimpleITK.Show( image, "Dicom Series" );


  } catch (Exception ex) {
    Console.WriteLine( "Usage: DicomSeriesReader <input_directory> <output_file>" );
    Console.WriteLine( ex );
  }
}

    }
}