VTK/Examples/IO/ReadDICOMSeries

From KitwarePublic

Jump to: navigation, search

This example reads a DICOM series and converts it to a VTI file.

DICOMSeries.cxx

#include <vtkCellArray.h>
#include <vtkCellData.h>
#include <vtkPolyData.h>
#include <vtkImageData.h>
#include <vtkSmartPointer.h>
#include <vtkDICOMImageReader.h>
#include <vtkXMLImageDataWriter.h>
 
int main(int argc, char *argv[])
{
  if(argc != 3)
    {
    vtkstd::cout << "Required arguments: Folder OutputFile" << vtkstd::endl;
    }
  vtkstd::string folder = argv[1];
  vtkstd::string outputFile = argv[2];
 
  // Read all the DICOM files in the specified directory.
  vtkSmartPointer<vtkDICOMImageReader> reader = vtkSmartPointer<vtkDICOMImageReader>::New();
  reader->SetDirectoryName(folder.c_str());
  reader->Update();
 
  vtkImageData* imagedata = reader->GetOutput();
 
  vtkSmartPointer<vtkXMLImageDataWriter> writer = vtkSmartPointer<vtkXMLImageDataWriter>::New();
  writer->SetInput(imagedata);
 
  writer->SetFileName(outputFile.c_str());
  writer->Update();
 
  return 0;
}

CMakeLists.txt

cmake_minimum_required(VERSION 2.6)
 
PROJECT(DICOMSeries)
 
FIND_PACKAGE(VTK REQUIRED)
INCLUDE(${VTK_USE_FILE})
 
ADD_EXECUTABLE(DICOMSeries DICOMSeries.cxx)
TARGET_LINK_LIBRARIES(DICOMSeries vtkHybrid)
Personal tools