#include <itkImage.h>
#include <itkImageFileReader.h>
#include <itkImageFileWriter.h>

int main ()
{
   typedef itk::Image<char,3> InputImageType;
   typedef itk::Image<double,2> OutputImageType;
   typedef itk::ImageFileWriter<InputImageType> ImageWriterType;
   typedef itk::ImageFileReader<OutputImageType> ImageReaderType;

   ImageWriterType::Pointer writer = ImageWriterType::New();
   ImageReaderType::Pointer reader = ImageReaderType::New();
   InputImageType::Pointer img = InputImageType::New();
   InputImageType::SizeType sz = { 10, 20, 30 };

   img->SetRegions(sz);
   img->Allocate();
   img->FillBuffer(1);

   writer->SetInput(img);
   writer->SetFileName("test_img.vtk");
   writer->Update();

   reader->SetFileName("test_img.vtk");
   reader->Update();
}
