// Pablo D. Burstein 05/15/2006 #include "itkImage.h" #include "itkImageFileReader.h" #include "itkImageFileWriter.h" #include "itkImageIOFactory.h" #include "itkVoxBoCUBImageIOFactory.h" #define IMAGEDIMENSION 3 #define MINARGS 3 int main( int argc, char * argv[] ) { if( argc < MINARGS ) { std::cerr << argv[0] << " converts inputImage from its original format into outputImage in the format given by outputImage extension" << std::endl<< std::endl; std::cerr << "This program is intended to test ITK's .cub and .cub.gz IO cpabilities. "; std::cerr << "It registers VoxBoCUBImageIOFactory (the corresponding CUB factory) to be used by ImageFileReader and ImageFileWriter (this should be actually done within itkImageIOFactory)" << std::endl<< std::endl; std::cerr << "Usage: " << argv[0] << " inputImage outputImage " << std::endl; return 1; } //Register CUB factory for testing. //In final form, this should be done within itkImageIOFactory. itk::ObjectFactoryBase::RegisterFactory( itk::VoxBoCUBImageIOFactory::New() ); typedef itk::Image < short, IMAGEDIMENSION > ImageType; typedef itk::ImageFileReader< ImageType > ReaderType; typedef itk::ImageFileWriter< ImageType > WriterType; ReaderType::Pointer reader = ReaderType::New(); WriterType::Pointer writer = WriterType::New(); reader->SetFileName( argv[1] ); writer->SetInput( reader->GetOutput() ); writer->SetFileName( argv[2] ); try { writer->Write(); } catch( itk::ExceptionObject & exp ) { std::cerr << "Exception thrown!\n " << std::endl; std::cerr << exp << std::endl; return 1; } std::cout << "Reading image: " << argv[1] << std::endl; std::cout << "Writing image: " << argv[2] << std::endl; std::cout << "Done." << std::endl; return 0; }