1 #ifndef CLITKIOCOMMON_TXX
2 #define CLITKIOCOMMON_TXX
5 =================================================
6 * @file clitkIOCommon.txx
7 * @author David Sarrut <david.sarrut@creatis.insa-lyon.fr>
8 * @date 04 Jul 2006 08:34:11
13 =================================================*/
15 //====================================================================
16 // To short the code for reading an image
17 template<typename ImageType>
18 typename ImageType::Pointer readImage(const std::string & filename, const bool verbose) {
19 typedef itk::ImageFileReader<ImageType> ReaderType;
20 typename ReaderType::Pointer reader = ReaderType::New();
21 reader->SetFileName(filename.c_str());
23 std::cout << "Reading " << filename << " ..." << std::endl;
28 catch( itk::ExceptionObject & err ) {
29 std::cerr << "Error while reading " << filename
30 << " " << err << std::endl;
33 return reader->GetOutput();
35 //====================================================================
37 //====================================================================
38 // To short the code for reading an image from several files
39 template<typename ImageType>
40 typename ImageType::Pointer readImage(const std::vector<std::string> & filenames,
42 if (filenames.size() == 1) return readImage<ImageType>(filenames[0], verbose);
43 typedef itk::ImageSeriesReader<ImageType> ReaderType;
44 typename ReaderType::Pointer reader = ReaderType::New();
45 reader->SetFileNames(filenames);
47 std::cout << "Reading " << filenames[0] << " and others ..." << std::endl;
52 catch( itk::ExceptionObject & err ) {
53 std::cerr << "Error while reading " << filenames[0]
54 << " or other files ..." << err << std::endl;
57 return reader->GetOutput();
59 //====================================================================
61 //====================================================================
62 // To short the code for writing an image
63 template<typename ImageType>
64 void writeImage(const typename ImageType::Pointer image,
65 const std::string & filename,
67 typedef itk::ImageFileWriter<ImageType> WriterType;
68 typename WriterType::Pointer writer = WriterType::New();
69 writer->SetFileName(filename.c_str());
70 writer->SetInput(image);
72 std::cout << "Writing " << filename << "." << std::endl;
77 catch( itk::ExceptionObject & err ) {
78 std::cerr << "Error while writing " << filename
79 << ", the error is : " << err << std::endl;
83 //====================================================================
85 #endif /* end #define CLITKIOCOMMON_TXX */