#ifndef CLITKIOCOMMON_TXX #define CLITKIOCOMMON_TXX /** ================================================= * @file clitkIOCommon.txx * @author David Sarrut * @date 04 Jul 2006 08:34:11 * * @brief * * =================================================*/ //==================================================================== // To short the code for reading an image template typename ImageType::Pointer readImage(const std::string & filename, const bool verbose) { typedef itk::ImageFileReader ReaderType; typename ReaderType::Pointer reader = ReaderType::New(); reader->SetFileName(filename.c_str()); if (verbose) { std::cout << "Reading " << filename << " ..." << std::endl; } try { reader->Update(); } catch( itk::ExceptionObject & err ) { std::cerr << "Error while reading " << filename << " " << err << std::endl; exit(0); } return reader->GetOutput(); } //==================================================================== //==================================================================== // To short the code for reading an image from several files template typename ImageType::Pointer readImage(const std::vector & filenames, const bool verbose) { if (filenames.size() == 1) return readImage(filenames[0], verbose); typedef itk::ImageSeriesReader ReaderType; typename ReaderType::Pointer reader = ReaderType::New(); reader->SetFileNames(filenames); if (verbose) { std::cout << "Reading " << filenames[0] << " and others ..." << std::endl; } try { reader->Update(); } catch( itk::ExceptionObject & err ) { std::cerr << "Error while reading " << filenames[0] << " or other files ..." << err << std::endl; exit(0); } return reader->GetOutput(); } //==================================================================== //==================================================================== // To short the code for writing an image template void writeImage(const typename ImageType::Pointer image, const std::string & filename, const bool verbose) { typedef itk::ImageFileWriter WriterType; typename WriterType::Pointer writer = WriterType::New(); writer->SetFileName(filename.c_str()); writer->SetInput(image); if (verbose) { std::cout << "Writing " << filename << "." << std::endl; } try { writer->Update(); } catch( itk::ExceptionObject & err ) { std::cerr << "Error while writing " << filename << ", the error is : " << err << std::endl; exit(0); } } //==================================================================== #endif /* end #define CLITKIOCOMMON_TXX */