]> Creatis software - clitk.git/blob - filters/clitkImageConvertGenericFilter.cxx
Initial revision
[clitk.git] / filters / clitkImageConvertGenericFilter.cxx
1 #ifndef CLITKIMAGECONVERTGENERICFILTER_CXX
2 #define CLITKIMAGECONVERTGENERICFILTER_CXX
3
4 /**
5  -------------------------------------------------
6  * @file   clitkImageConvertGenericFilter.cxx
7  * @author David Sarrut <david.sarrut@creatis.insa-lyon.fr>
8  * @date   05 May 2008 10:57:19
9  * 
10  * @brief  
11  * 
12  * 
13  -------------------------------------------------*/
14
15 #include "clitkImageConvertGenericFilter.h"
16
17 //--------------------------------------------------------------------
18 clitk::ImageConvertGenericFilter::ImageConvertGenericFilter():ImageToImageGenericFilter() {
19   mOutputPixelTypeName = "NotSpecified";
20 }
21 //--------------------------------------------------------------------
22
23 //--------------------------------------------------------------------
24 void clitk::ImageConvertGenericFilter::Update() {  
25   // Load image header
26   itk::ImageIOBase::Pointer header = clitk::readImageHeader(mInputFilenames[0]);
27
28   // Determine dim, pixel type, number of components
29   mDim = header->GetNumberOfDimensions();
30   mPixelTypeName = header->GetComponentTypeAsString(header->GetComponentType());  
31   mNbOfComponents = header->GetNumberOfComponents();
32
33   // Verbose stuff
34   if (mIOVerbose) {
35     if (mInputFilenames.size() == 1) {
36       std::cout << "Input image <" << mInputFilenames[0] << "> is ";
37       printImageHeader(header, std::cout);
38       std::cout << std::endl;
39     }
40     else {
41       for(unsigned int i=0; i<mInputFilenames.size(); i++) {
42         std::cout << "Input image " << i << " <" << mInputFilenames[i] << "> is ";
43         itk::ImageIOBase::Pointer h = clitk::readImageHeader(mInputFilenames[i]);       
44         printImageHeader(h, std::cout);
45         std::cout << std::endl;
46       }
47     }
48   }
49
50   // Switch by dimension
51   if (mInputFilenames.size() > 1) mDim++;
52   if (mDim == 2) { Update_WithDim<2>(); return; }
53   if (mDim == 3) { Update_WithDim<3>(); return; }
54   if (mDim == 4) { Update_WithDim<4>(); return; }
55
56   std::cerr << "Error, dimension of input image is " << mDim << ", but I only work with 2,3,4." << std::endl;
57   exit(0);
58 }
59 //--------------------------------------------------------------------
60
61 #endif /* end #define CLITKIMAGECONVERTGENERICFILTER_CXX */
62