]> Creatis software - clitk.git/blob - tools/clitkImageStatisticsGenericFilter.h
Change name of the button in Image Arithm tool
[clitk.git] / tools / clitkImageStatisticsGenericFilter.h
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 clitkImageStatisticsGenericFilter_h
19 #define clitkImageStatisticsGenericFilter_h
20
21 // clitk include
22 #include "clitkIO.h"
23 #include "clitkCommon.h"
24 #include "clitkImageCommon.h"
25 #include "clitkImageStatistics_ggo.h"
26
27 //itk include
28 #include "itkLightObject.h"
29 #include "itkLabelStatisticsImageFilter.h"
30
31 namespace clitk 
32 {
33
34   class ITK_EXPORT ImageStatisticsGenericFilter : public itk::LightObject
35   {
36   public:
37     //----------------------------------------
38     // ITK
39     //----------------------------------------
40     typedef ImageStatisticsGenericFilter                   Self;
41     typedef itk::LightObject                   Superclass;
42     typedef itk::SmartPointer<Self>            Pointer;
43     typedef itk::SmartPointer<const Self>      ConstPointer;
44    
45     // Method for creation through the object factory
46     itkNewMacro(Self);  
47
48     // Run-time type information (and related methods)
49     itkTypeMacro( ImageStatisticsGenericFilter, LightObject );
50
51
52     //----------------------------------------
53     // Typedefs
54     //----------------------------------------
55
56
57     //----------------------------------------
58     // Set & Get
59     //----------------------------------------    
60     void SetArgsInfo(const args_info_clitkImageStatistics & a)
61     {
62       m_ArgsInfo=a;
63       m_Verbose=m_ArgsInfo.verbose_flag;
64       m_Localize=m_ArgsInfo.localize_flag;
65
66       if(m_ArgsInfo.input_given)
67         m_InputFileName=m_ArgsInfo.input_arg[0];
68       else if(m_ArgsInfo.inputs_num>0)
69         m_InputFileName=m_ArgsInfo.inputs[0];
70       else {
71         std::cerr << "You must give an input file name" << std::endl;
72         exit(1);
73       }
74     }
75     
76     
77     //----------------------------------------  
78     // Update
79     //----------------------------------------  
80     void Update();
81
82   protected:
83
84     //----------------------------------------  
85     // Constructor & Destructor
86     //----------------------------------------  
87     ImageStatisticsGenericFilter();
88     ~ImageStatisticsGenericFilter() {};
89
90     
91     //----------------------------------------  
92     // Templated members
93     //----------------------------------------  
94     template <unsigned int Dimension, unsigned int Components>  void UpdateWithDim(std::string PixelType);
95     template <unsigned int Dimension, class PixelType, unsigned int Components>  void UpdateWithDimAndPixelType();
96
97
98     //----------------------------------------  
99     // Data members
100     //----------------------------------------
101     args_info_clitkImageStatistics m_ArgsInfo;
102     bool m_Verbose, m_Localize;
103     std::string m_InputFileName;
104
105   };
106
107
108 } // end namespace clitk
109
110 #ifndef ITK_MANUAL_INSTANTIATION
111 #include "clitkImageStatisticsGenericFilter.txx"
112 #endif
113
114 #endif // #define clitkImageStatisticsGenericFilter_h