1 #ifndef CLITKIOCOMMON_TXX
2 #define CLITKIOCOMMON_TXX
4 =================================================
5 * @file clitkIOCommon.txx
6 * @author David Sarrut <david.sarrut@creatis.insa-lyon.fr>
7 * @date 04 Jul 2006 08:34:11
12 =================================================*/
14 //====================================================================
15 // To short the code for reading an image
16 template<typename ImageType>
17 typename ImageType::Pointer readImage(const std::string & filename, const bool verbose) {
18 typedef itk::ImageFileReader<ImageType> ReaderType;
19 typename ReaderType::Pointer reader = ReaderType::New();
20 reader->SetFileName(filename.c_str());
22 std::cout << "Reading " << filename << " ..." << std::endl;
27 catch( itk::ExceptionObject & err ) {
28 std::cerr << "Error while reading " << filename
29 << " " << err << std::endl;
32 return reader->GetOutput();
34 //====================================================================
36 //====================================================================
37 // To short the code for reading an image from several files
38 template<typename ImageType>
39 typename ImageType::Pointer readImage(const std::vector<std::string> & filenames,
41 if (filenames.size() == 1) return readImage<ImageType>(filenames[0], verbose);
42 typedef itk::ImageSeriesReader<ImageType> ReaderType;
43 typename ReaderType::Pointer reader = ReaderType::New();
44 reader->SetFileNames(filenames);
46 std::cout << "Reading " << filenames[0] << " and others ..." << std::endl;
51 catch( itk::ExceptionObject & err ) {
52 std::cerr << "Error while reading " << filenames[0]
53 << " or other files ..." << err << std::endl;
56 return reader->GetOutput();
58 //====================================================================
60 //====================================================================
61 // To short the code for writing an image
62 template<typename ImageType>
63 void writeImage(const typename ImageType::Pointer image,
64 const std::string & filename,
66 typedef itk::ImageFileWriter<ImageType> WriterType;
67 typename WriterType::Pointer writer = WriterType::New();
68 writer->SetFileName(filename.c_str());
69 writer->SetInput(image);
71 std::cout << "Writing " << filename << "." << std::endl;
76 catch( itk::ExceptionObject & err ) {
77 std::cerr << "Error while writing " << filename
78 << ", the error is : " << err << std::endl;
82 //====================================================================
84 #endif /* end #define CLITKIOCOMMON_TXX */