ImageWriters.h

Go to the documentation of this file.
00001 #ifndef __ImageWriters_h
00002 #define __ImageWriters_h
00003 
00004 #include <itkImageFileWriter.h>
00005 #include <itkResampleImageFilter.h>
00006 
00007 template< typename T >
00008 void writeimage(const T* image,
00009                 const std::string & filename)
00010 {
00011     // Write out test image
00012   typename itk::ImageFileWriter<T>::Pointer writer = 
00013     itk::ImageFileWriter<T>::New();
00014   writer->SetFileName(filename);
00015   writer->UseCompressionOn();
00016   writer->SetInput(image);
00017   writer->Update();
00018 }
00019 
00020 template< typename T >
00021 void writeimage(itk::SmartPointer<T> image,
00022                 const std::string & filename)
00023 {
00024   writeimage(image.GetPointer(), filename);
00025 }
00026 
00027 template< typename T, typename J>
00028 void writeimage(const T* image,
00029                 const J* transform, 
00030                 const std::string & filename)
00031 {
00032   typedef itk::ResampleImageFilter<T, itk::Image<short, 3> > ResampleImageFilter;
00033   typename ResampleImageFilter::Pointer resampler = 
00034     ResampleImageFilter::New();
00035   // Resample the moving image
00036   resampler->SetInput(image);
00037   resampler->SetOutputOrigin(image->GetOrigin());
00038   resampler->SetOutputSpacing(image->GetSpacing());
00039   resampler->SetOutputDirection(image->GetDirection());
00040   resampler->SetSize(image->GetLargestPossibleRegion().GetSize());
00041   resampler->SetTransform(transform);
00042   resampler->Update();
00043 
00044   // Write out test image
00045   typename itk::ImageFileWriter<itk::Image<short, 3> >::Pointer writer = 
00046     itk::ImageFileWriter<itk::Image<short, 3> >::New();
00047   writer->SetFileName(filename);
00048   writer->UseCompressionOn();
00049   writer->SetInput(resampler->GetOutput());
00050   writer->Update();
00051 }
00052 
00053 template< typename T, typename J>
00054 void writeimage(const T* image,
00055                 itk::SmartPointer<J> transform, 
00056                 const std::string & filename)
00057 {
00058   writeimage(image, transform.GetPointer(), filename);
00059 }
00060 
00061 #endif

Generated on 6 Apr 2011 for Slicer3 by  doxygen 1.6.1