]> Creatis software - clitk.git/blob - common/rtkImagXRawToAttenuationImageFilter.h
Add define to avoid vtk warning on mac
[clitk.git] / common / rtkImagXRawToAttenuationImageFilter.h
1 /*=========================================================================
2  *
3  *  Copyright RTK Consortium
4  *
5  *  Licensed under the Apache License, Version 2.0 (the "License");
6  *  you may not use this file except in compliance with the License.
7  *  You may obtain a copy of the License at
8  *
9  *         http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  *  Unless required by applicable law or agreed to in writing, software
12  *  distributed under the License is distributed on an "AS IS" BASIS,
13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *  See the License for the specific language governing permissions and
15  *  limitations under the License.
16  *
17  *=========================================================================*/
18
19 #ifndef __rtkImagXRawToAttenuationImageFilter_h
20 #define __rtkImagXRawToAttenuationImageFilter_h
21
22 #include <itkImageToImageFilter.h>
23 #include <itkCropImageFilter.h>
24
25 #include "rtkImagXLookupTableImageFilter.h"
26 #include "rtkBoellaardScatterCorrectionImageFilter.h"
27
28 /** \class ImagXRawToAttenuationImageFilter
29  * \brief Convert raw ImagX data to attenuation images
30  *
31  * TODO
32  *
33  * \author Simon Rit
34  *
35  * \ingroup ImageToImageFilter
36  */
37 namespace rtk
38 {
39
40 template<class TInputImage, class TOutputImage=TInputImage>
41 class ITK_EXPORT ImagXRawToAttenuationImageFilter :
42   public itk::ImageToImageFilter<TInputImage, TOutputImage>
43 {
44 public:
45   /** Standard class typedefs. */
46   typedef ImagXRawToAttenuationImageFilter                   Self;
47   typedef itk::ImageToImageFilter<TInputImage, TOutputImage> Superclass;
48   typedef itk::SmartPointer<Self>                            Pointer;
49   typedef itk::SmartPointer<const Self>                      ConstPointer;
50
51   /** Some convenient typedefs. */
52   typedef TInputImage  InputImageType;
53   typedef TOutputImage OutputImageType;
54
55   /** Standard New method. */
56   itkNewMacro(Self);
57
58   /** Runtime information support. */
59   itkTypeMacro(ImagXRawToAttenuationImageFilter, itk::ImageToImageFilter);
60 protected:
61   ImagXRawToAttenuationImageFilter();
62   ~ImagXRawToAttenuationImageFilter(){
63   }
64
65   /** Apply changes to the input image requested region. */
66   virtual void GenerateInputRequestedRegion();
67
68   void GenerateOutputInformation();
69
70   /** Single-threaded version of GenerateData.  This filter delegates
71    * to other filters. */
72   void GenerateData();
73
74 private:
75   //purposely not implemented
76   ImagXRawToAttenuationImageFilter(const Self&);
77   void operator=(const Self&);
78
79   typedef itk::CropImageFilter<InputImageType, InputImageType>                       CropFilterType;
80   typedef rtk::BoellaardScatterCorrectionImageFilter<InputImageType, InputImageType> ScatterFilterType;
81   typedef rtk::ImagXLookupTableImageFilter<InputImageType, OutputImageType>          LookupTableFilterType;
82
83   typename LookupTableFilterType::Pointer m_LookupTableFilter;
84   typename CropFilterType::Pointer        m_CropFilter;
85   typename ScatterFilterType::Pointer     m_ScatterFilter;
86 }; // end of class
87
88 } // end namespace rtk
89
90 #ifndef ITK_MANUAL_INSTANTIATION
91 #include "rtkImagXRawToAttenuationImageFilter.txx"
92 #endif
93
94 #endif