]> Creatis software - clitk.git/blob - common/old/clitkIOCommon.txx
removed headers
[clitk.git] / common / old / clitkIOCommon.txx
1 #ifndef CLITKIOCOMMON_TXX
2 #define CLITKIOCOMMON_TXX
3 /**
4    =================================================
5    * @file   clitkIOCommon.txx
6    * @author David Sarrut <david.sarrut@creatis.insa-lyon.fr>
7    * @date   04 Jul 2006 08:34:11
8    * 
9    * @brief  
10    * 
11    * 
12    =================================================*/
13
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());
21   if (verbose) {
22     std::cout << "Reading " << filename << " ..." << std::endl;
23   }
24   try {
25     reader->Update(); 
26   }
27   catch( itk::ExceptionObject & err ) {
28     std::cerr << "Error while reading " << filename 
29               << " " << err << std::endl;
30     exit(0);
31   }
32   return reader->GetOutput();
33 }
34 //====================================================================
35
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, 
40                                       const bool verbose) {
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);
45   if (verbose) {
46     std::cout << "Reading " << filenames[0] << " and others ..." << std::endl;
47   }
48   try {
49     reader->Update(); 
50   }
51   catch( itk::ExceptionObject & err ) {
52     std::cerr << "Error while reading " << filenames[0]
53               << " or other files ..." << err << std::endl;
54     exit(0);
55   }
56   return reader->GetOutput();
57 }
58 //====================================================================
59
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,  
65                 const bool verbose) {
66   typedef itk::ImageFileWriter<ImageType> WriterType;
67   typename WriterType::Pointer writer = WriterType::New();
68   writer->SetFileName(filename.c_str());
69   writer->SetInput(image);
70   if (verbose) {
71     std::cout << "Writing " << filename << "." << std::endl;
72   }
73   try { 
74     writer->Update(); 
75   }
76   catch( itk::ExceptionObject & err ) {
77     std::cerr << "Error while writing " << filename 
78               << ", the error is : " << err << std::endl;
79     exit(0);
80   }
81 }
82 //====================================================================
83
84 #endif /* end #define CLITKIOCOMMON_TXX */
85