1 /*=========================================================================
2 Program: vv http://www.creatis.insa-lyon.fr/rio/vv
5 - University of LYON http://www.universite-lyon.fr/
6 - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr
7 - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr
9 This software is distributed WITHOUT ANY WARRANTY; without even
10 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11 PURPOSE. See the copyright notices for more information.
13 It is distributed under dual licence
15 - BSD See included LICENSE.txt file
16 - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
17 ======================================================================-====*/
18 #ifndef CLITKIOCOMMON_TXX
19 #define CLITKIOCOMMON_TXX
21 =================================================
22 * @file clitkIOCommon.txx
23 * @author David Sarrut <david.sarrut@creatis.insa-lyon.fr>
24 * @date 04 Jul 2006 08:34:11
29 =================================================*/
31 //====================================================================
32 // To short the code for reading an image
33 template<typename ImageType>
34 typename ImageType::Pointer readImage(const std::string & filename, const bool verbose) {
35 typedef itk::ImageFileReader<ImageType> ReaderType;
36 typename ReaderType::Pointer reader = ReaderType::New();
37 reader->SetFileName(filename.c_str());
39 std::cout << "Reading " << filename << " ..." << std::endl;
44 catch( itk::ExceptionObject & err ) {
45 std::cerr << "Error while reading " << filename
46 << " " << err << std::endl;
49 return reader->GetOutput();
51 //====================================================================
53 //====================================================================
54 // To short the code for reading an image from several files
55 template<typename ImageType>
56 typename ImageType::Pointer readImage(const std::vector<std::string> & filenames,
58 if (filenames.size() == 1) return readImage<ImageType>(filenames[0], verbose);
59 typedef itk::ImageSeriesReader<ImageType> ReaderType;
60 typename ReaderType::Pointer reader = ReaderType::New();
61 reader->SetFileNames(filenames);
63 std::cout << "Reading " << filenames[0] << " and others ..." << std::endl;
68 catch( itk::ExceptionObject & err ) {
69 std::cerr << "Error while reading " << filenames[0]
70 << " or other files ..." << err << std::endl;
73 return reader->GetOutput();
75 //====================================================================
77 //====================================================================
78 // To short the code for writing an image
79 template<typename ImageType>
80 void writeImage(const typename ImageType::Pointer image,
81 const std::string & filename,
83 typedef itk::ImageFileWriter<ImageType> WriterType;
84 typename WriterType::Pointer writer = WriterType::New();
85 writer->SetFileName(filename.c_str());
86 writer->SetInput(image);
88 std::cout << "Writing " << filename << "." << std::endl;
93 catch( itk::ExceptionObject & err ) {
94 std::cerr << "Error while writing " << filename
95 << ", the error is : " << err << std::endl;
99 //====================================================================
101 #endif /* end #define CLITKIOCOMMON_TXX */