NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
itkLSDerivatives.h
Go to the documentation of this file.
1 /*=============================================================================
2 
3  NifTK: A software platform for medical image computing.
4 
5  Copyright (c) University College London (UCL). All rights reserved.
6 
7  This software is distributed WITHOUT ANY WARRANTY; without even
8  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9  PURPOSE.
10 
11  See LICENSE.txt in the top level directory for details.
12 
13 =============================================================================*/
14 #ifndef __itkLSDerivatives_h
15 #define __itkLSDerivatives_h
16 
17 #include "itkImageToImageFilter.h"
18 #include "itkImage.h"
19 
20 namespace itk
21 {
22 
23  typedef struct LSGradientsL0{
24  float L;
25  float H;
26  } LSGradientsL0;
27 
28  typedef struct LSGradientsL1{
29  float LL;
30  float HL;
31  float LH;
32  } LSGradientsL1;
33 
34  typedef struct LSGradientsL2{
35  float LLL;
36  float HLL;
37  float LHL;
38  float LLH;
39  } LSGradientsL2;
40 
41 
43 template <class TInputImage>
44 class ITK_EXPORT LSDerivativesL0 : public ImageToImageFilter< TInputImage, itk::Image<LSGradientsL0,TInputImage::ImageDimension> >
45 {
46 public:
50  typedef TInputImage InputImageType;
51  typedef typename InputImageType::Pointer InputImagePointer;
52  typedef typename InputImageType::ConstPointer InputImageConstPointer;
53  typedef typename itk::Image<LSGradientsL0,TInputImage::ImageDimension >
55  typedef typename OutputImageType::Pointer OutputImagePointer;
56 
58  typedef ImageToImageFilter< InputImageType, OutputImageType> Superclass;
59  typedef SmartPointer<Self> Pointer;
60  typedef SmartPointer<const Self> ConstPointer;
61 
63  itkNewMacro(Self);
64 
66  itkTypeMacro( LSDerivativesL0, ImageToImageFilter );
67 
75 
76 
78  itkSetMacro( Radius, unsigned int );
79  itkGetMacro( Radius, unsigned int );
80  itkSetMacro( Coordinate, unsigned int );
81  itkGetMacro( Coordinate, unsigned int );
82 protected:
84  virtual ~LSDerivativesL0() {}
85  // Threaded filter!
86 #if ITK_VERSION_MAJOR < 4
87  void ThreadedGenerateData( const OutputRegionType& outputRegionForThread, int threadId );
88 
89 #else
90  void ThreadedGenerateData( const OutputRegionType& outputRegionForThread, ThreadIdType threadId );
91 
92 #endif
93  void BeforeThreadedGenerateData();
94  void GenerateInputRequestedRegion();
95 private:
96  LSDerivativesL0(const Self&); // purposely not implemented
97  void operator=(const Self&); // purposely not implemented
98  unsigned int m_Radius;
99  unsigned int m_Coordinate;
100 };
101 
102 
103 
104  template <unsigned int ImageDimension>
105  class ITK_EXPORT LSDerivativesL1 : public ImageToImageFilter< itk::Image<LSGradientsL0,ImageDimension>, itk::Image<LSGradientsL1,ImageDimension> >
106  {
107  public:
111  typedef itk::Image<LSGradientsL0,ImageDimension > InputImageType;
112  typedef typename InputImageType::Pointer InputImagePointer;
113  typedef typename InputImageType::ConstPointer InputImageConstPointer;
114  typedef itk::Image<LSGradientsL1,ImageDimension > OutputImageType;
115  typedef typename OutputImageType::Pointer OutputImagePointer;
116 
118  typedef ImageToImageFilter< InputImageType, OutputImageType> Superclass;
119  typedef SmartPointer<Self> Pointer;
120  typedef SmartPointer<const Self> ConstPointer;
121 
123  itkNewMacro(Self);
124 
126  itkTypeMacro( LSDerivativesL1, ImageToImageFilter );
127 
129  typedef typename InputImageType::PixelType InputPixelType;
135 
136 
138  itkSetMacro( Radius, unsigned int );
139  itkGetMacro( Radius, unsigned int );
140  itkSetMacro( Coordinate, unsigned int );
141  itkGetMacro( Coordinate, unsigned int );
142  protected:
143  LSDerivativesL1();
144  virtual ~LSDerivativesL1() {}
145  // Threaded filter!
146 #if ITK_VERSION_MAJOR < 4
147  void ThreadedGenerateData( const OutputRegionType& outputRegionForThread, int threadId );
148 
149 #else
150  void ThreadedGenerateData( const OutputRegionType& outputRegionForThread, ThreadIdType threadId );
151 
152 #endif
153  void BeforeThreadedGenerateData();
154  void GenerateInputRequestedRegion();
155  private:
156  LSDerivativesL1(const Self&); // purposely not implemented
157  void operator=(const Self&); // purposely not implemented
158  unsigned int m_Radius;
159  unsigned int m_Coordinate;
160  };
161 
162 
163 
164  template <unsigned int ImageDimension>
165  class ITK_EXPORT LSDerivativesL2 : public ImageToImageFilter< itk::Image<LSGradientsL1,ImageDimension>, itk::Image<LSGradientsL2,ImageDimension> >
166  {
167  public:
171  typedef itk::Image<LSGradientsL1,ImageDimension > InputImageType;
172  typedef typename InputImageType::Pointer InputImagePointer;
173  typedef typename InputImageType::ConstPointer InputImageConstPointer;
174  typedef itk::Image<LSGradientsL2,ImageDimension > OutputImageType;
175  typedef typename OutputImageType::Pointer OutputImagePointer;
176 
178  typedef ImageToImageFilter< InputImageType, OutputImageType> Superclass;
179  typedef SmartPointer<Self> Pointer;
180  typedef SmartPointer<const Self> ConstPointer;
181 
183  itkNewMacro(Self);
184 
186  itkTypeMacro( LSDerivativesL2, ImageToImageFilter );
187 
189  typedef typename InputImageType::PixelType InputPixelType;
195 
196 
198  itkSetMacro( Radius, unsigned int );
199  itkGetMacro( Radius, unsigned int );
200  itkSetMacro( Coordinate, unsigned int );
201  itkGetMacro( Coordinate, unsigned int );
202  protected:
203  LSDerivativesL2();
204  virtual ~LSDerivativesL2() {}
205  // Threaded filter!
206 #if ITK_VERSION_MAJOR < 4
207  void ThreadedGenerateData( const OutputRegionType& outputRegionForThread, int threadId );
208 
209 #else
210  void ThreadedGenerateData( const OutputRegionType& outputRegionForThread, ThreadIdType threadId );
211 
212 #endif
213  void BeforeThreadedGenerateData();
214  void GenerateInputRequestedRegion();
215  private:
216  LSDerivativesL2(const Self&); // purposely not implemented
217  void operator=(const Self&); // purposely not implemented
218  unsigned int m_Radius;
219  unsigned int m_Coordinate;
220  };
221 
222 
223 
224 } // end namespace itk
225 
226 #ifndef ITK_MANUAL_INSTANTIATION
227 #include "itkLSDerivatives.txx"
228 #endif
229 
230 #endif
InputImageType::ConstPointer InputImageConstPointer
Definition: itkLSDerivatives.h:113
float H
Definition: itkLSDerivatives.h:25
ImageToImageFilter< InputImageType, OutputImageType > Superclass
Definition: itkLSDerivatives.h:58
SmartPointer< Self > Pointer
Definition: itkLSDerivatives.h:119
InputImageType::IndexType InputIndexType
Definition: itkLSDerivatives.h:193
itk::Image< LSGradientsL0, TInputImage::ImageDimension > OutputImageType
Definition: itkLSDerivatives.h:54
ImageType::SizeType SizeType
Definition: niftkMakeLapUSProbeBasicModel.cxx:31
InputImageType::SizeType InputSizeType
Definition: itkLSDerivatives.h:192
ImageToImageFilter< InputImageType, OutputImageType > Superclass
Definition: itkLSDerivatives.h:178
SmartPointer< Self > Pointer
Definition: itkLSDerivatives.h:179
Definition: itkLSDerivatives.h:23
virtual ~LSDerivativesL2()
Definition: itkLSDerivatives.h:204
LSDerivativesL1 Self
Definition: itkLSDerivatives.h:109
itk::Image< LSGradientsL1, ImageDimension > OutputImageType
Definition: itkLSDerivatives.h:114
InputImageType::SizeType InputSizeType
Definition: itkLSDerivatives.h:72
InputImageType::PixelType InputPixelType
Definition: itkLSDerivatives.h:66
InputImageType::IndexType InputIndexType
Definition: itkLSDerivatives.h:133
InputImageType::RegionType InputRegionType
Definition: itkLSDerivatives.h:131
SmartPointer< const Self > ConstPointer
Definition: itkLSDerivatives.h:180
float LLH
Definition: itkLSDerivatives.h:38
float L
Definition: itkLSDerivatives.h:24
OutputImageType::RegionType OutputRegionType
Definition: itkLSDerivatives.h:134
struct itk::LSGradientsL0 LSGradientsL0
InputImageType::Pointer InputImagePointer
Definition: itkLSDerivatives.h:112
Definition: niftkITKAffineResampleImage.cxx:74
InputImageType::ConstPointer InputImageConstPointer
Definition: itkLSDerivatives.h:52
ImageType::IndexType IndexType
Definition: niftkMakeLapUSProbeBasicModel.cxx:32
InputImageType::Pointer InputImagePointer
Definition: itkLSDerivatives.h:172
itk::Image< LSGradientsL0, ImageDimension > InputImageType
Definition: itkLSDerivatives.h:111
InputImageType::PixelType InputPixelType
Definition: itkLSDerivatives.h:126
struct itk::LSGradientsL2 LSGradientsL2
LSDerivativesL2 Self
Definition: itkLSDerivatives.h:169
SmartPointer< const Self > ConstPointer
Definition: itkLSDerivatives.h:120
virtual ~LSDerivativesL0()
Definition: itkLSDerivatives.h:84
float LL
Definition: itkLSDerivatives.h:29
virtual ~LSDerivativesL1()
Definition: itkLSDerivatives.h:144
OutputImageType::Pointer OutputImagePointer
Definition: itkLSDerivatives.h:115
InputImageType::SizeType InputSizeType
Definition: itkLSDerivatives.h:132
InputImageType::IndexType InputIndexType
Definition: itkLSDerivatives.h:73
float LLL
Definition: itkLSDerivatives.h:35
Definition: itkLSDerivatives.h:44
float PixelType
Definition: niftkBreastDCEandADC.cxx:88
OutputImageType::RegionType OutputRegionType
Definition: itkLSDerivatives.h:194
InputImageType::Pointer InputImagePointer
Definition: itkLSDerivatives.h:51
ImageType::RegionType RegionType
Definition: niftkMakeLapUSProbeBasicModel.cxx:30
OutputImageType::PixelType OutputPixelType
Definition: itkLSDerivatives.h:70
float LHL
Definition: itkLSDerivatives.h:37
TInputImage InputImageType
Definition: itkLSDerivatives.h:50
itk::Image< LSGradientsL1, ImageDimension > InputImageType
Definition: itkLSDerivatives.h:171
SmartPointer< Self > Pointer
Definition: itkLSDerivatives.h:59
struct itk::LSGradientsL1 LSGradientsL1
Definition: itkLSDerivatives.h:34
Definition: itkLSDerivatives.h:105
InputImageType::ConstPointer InputImageConstPointer
Definition: itkLSDerivatives.h:173
OutputImageType::Pointer OutputImagePointer
Definition: itkLSDerivatives.h:175
OutputImageType::PixelType OutputPixelType
Definition: itkLSDerivatives.h:190
InputImageType::PixelType InputPixelType
Definition: itkLSDerivatives.h:186
float HL
Definition: itkLSDerivatives.h:30
LSDerivativesL0 Self
Definition: itkLSDerivatives.h:48
InputImageType::RegionType InputRegionType
Definition: itkLSDerivatives.h:71
float LH
Definition: itkLSDerivatives.h:31
OutputImageType::RegionType OutputRegionType
Definition: itkLSDerivatives.h:74
float HLL
Definition: itkLSDerivatives.h:36
InputImageType::RegionType InputRegionType
Definition: itkLSDerivatives.h:191
ImageToImageFilter< InputImageType, OutputImageType > Superclass
Definition: itkLSDerivatives.h:118
OutputImageType::Pointer OutputImagePointer
Definition: itkLSDerivatives.h:55
Definition: itkLSDerivatives.h:28
Definition: itkLSDerivatives.h:165
SmartPointer< const Self > ConstPointer
Definition: itkLSDerivatives.h:60
itk::Image< LSGradientsL2, ImageDimension > OutputImageType
Definition: itkLSDerivatives.h:174
OutputImageType::PixelType OutputPixelType
Definition: itkLSDerivatives.h:130