]> Creatis software - clitk.git/blob - tools/clitkBackProjectImageGenericFilter.cxx
close #59 #58 Change clitkAffineTransform --transform_grid
[clitk.git] / tools / clitkBackProjectImageGenericFilter.cxx
1 /*=========================================================================
2   Program:   vv                     http://www.creatis.insa-lyon.fr/rio/vv
3
4   Authors belong to: 
5   - University of LYON              http://www.universite-lyon.fr/
6   - Léon Bérard cancer center       http://www.centreleonberard.fr
7   - CREATIS CNRS laboratory         http://www.creatis.insa-lyon.fr
8
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.
12
13   It is distributed under dual licence
14
15   - BSD        See included LICENSE.txt file
16   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
17 ===========================================================================**/
18 #ifndef CLITKBACKPROJECTIMAGEGENERICFILTER_CXX
19 #define CLITKBACKPROJECTIMAGEGENERICFILTER_CXX
20
21 /**
22  * @file   clitkBackProjectImageGenericFilter.cxx
23  * @author Jef Vandemeulebroucke <jef@creatis.insa-lyon.fr>
24  * @date   Wed April 30  13:47:57 2008
25  * 
26  * @brief  
27  * 
28  * 
29  */
30
31 #include "clitkBackProjectImageGenericFilter.h"
32
33 namespace clitk
34 {
35
36   //====================================================================
37   // Constructor
38   BackProjectImageGenericFilter::BackProjectImageGenericFilter()
39   {
40     m_Verbose=false;
41     m_InputFileName="";
42   }
43
44   //====================================================================
45   // Update
46   void BackProjectImageGenericFilter::Update()
47   {
48
49     //Read the PixelType and dimension of the input image
50     int Dimension;
51     std::string PixelType;
52     clitk::ReadImageDimensionAndPixelType(m_InputFileName, Dimension, PixelType);
53
54     //Launch for the right pixelType
55     if (Dimension==2)
56       {   
57         if (m_Verbose) std::cout  << "Input was detected to be "<< Dimension << "D and " << PixelType << "..." << std::endl;
58         
59         
60         if(PixelType == "short"){  
61           if (m_Verbose) std::cout  << "Launching back projection in signed short..." << std::endl;
62           UpdateWithPixelType<signed short>(); 
63         }
64         
65 //      else if(PixelType == "unsigned_short"){  
66 //        if (m_Verbose) std::cout  << "Launching Projection in unsigned_short..." << std::endl;
67 //        UpdateWithPixelType<unsigned short>(); 
68 //      }
69         
70         else if (PixelType == "unsigned_char"){ 
71           if (m_Verbose) std::cout  << "Launching Projection in unsigned_char..." << std::endl;
72           UpdateWithPixelType<unsigned char>();
73         }
74         
75 //      else if (PixelType == "char"){ 
76 //        if (m_Verbose) std::cout  << "Launching Projection in signed_char..." << std::endl;
77 //        UpdateWithPixelType<signed char>();
78 //      }
79         else {
80           if (m_Verbose) std::cout  << "Launching Projection in float..." << std::endl;
81           UpdateWithPixelType<float>();
82         }
83       }
84     else std::cerr<<"The input image should be 2D!"<<std::endl;
85
86   }
87
88
89   //====================================================================
90
91 }
92 #endif  //#define CLITKBACKPROJECTIMAGEGENERICFILTER_CXX