Orfeo Toolbox  3.16
itkGaussianDerivativeImageFunction.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Insight Segmentation & Registration Toolkit
4  Module: $RCSfile: itkGaussianDerivativeImageFunction.h,v $
5  Language: C++
6  Date: $Date: 2009-02-05 19:04:56 $
7  Version: $Revision: 1.13 $
8 
9  Copyright (c) Insight Software Consortium. All rights reserved.
10  See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
11 
12  This software is distributed WITHOUT ANY WARRANTY; without even
13  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14  PURPOSE. See the above copyright notices for more information.
15 
16 =========================================================================*/
17 #ifndef __itkGaussianDerivativeImageFunction_h
18 #define __itkGaussianDerivativeImageFunction_h
19 
21 #include "itkImageFunction.h"
24 
25 namespace itk
26 {
27 
37 template <class TInputImage,class TOutput=double>
39  public ImageFunction< TInputImage,
40  Vector<TOutput,::itk::GetImageDimension<TInputImage>::ImageDimension>,
41  TOutput >
42 {
43 public:
44 
47 
49  typedef ImageFunction<TInputImage,
51  TOutput > Superclass;
52 
56 
58  itkNewMacro(Self);
59 
62 
64  typedef TInputImage InputImageType;
65  typedef typename InputImageType::PixelType InputPixelType;
66  typedef typename InputImageType::IndexType IndexType;
67 
69  itkStaticConstMacro(ImageDimension2, unsigned int,
70  InputImageType::ImageDimension);
71 
74 
75 
78 
85 
88 
91 
94 
96  virtual OutputType Evaluate(const PointType& point) const;
97 
98 
100  virtual OutputType EvaluateAtIndex( const IndexType & index ) const;
101 
103  virtual OutputType EvaluateAtContinuousIndex(
104  const ContinuousIndexType & index ) const;
105 
112  void SetSigma( const double* sigma);
113  void SetSigma( const double sigma);
114  const double* GetSigma() const {return m_Sigma;}
115 
117  void SetExtent( const double* extent);
118  void SetExtent( const double extent);
119  const double* GetExtent() const {return m_Extent;}
120 
125  virtual void SetInputImage( const InputImageType * ptr );
126 
127 protected:
130 
132 
133  void operator=( const Self& ){};
134  void PrintSelf(std::ostream& os, Indent indent) const;
135 
136  void RecomputeGaussianKernel();
137  void RecomputeContinuousGaussianKernel(
138  const double* offset) const;
139 
140 
141 private:
142 
143  double m_Sigma[ImageDimension2];
144 
149 
152  double m_Extent[ImageDimension2];
153 
156 
160 
161 };
162 
163 } // namespace itk
164 
165 // Define instantiation macro for this template.
166 #define ITK_TEMPLATE_GaussianDerivativeImageFunction(_, EXPORT, x, y) namespace itk { \
167  _(2(class EXPORT GaussianDerivativeImageFunction< ITK_TEMPLATE_2 x >)) \
168  namespace Templates { typedef GaussianDerivativeImageFunction< ITK_TEMPLATE_2 x > \
169  GaussianDerivativeImageFunction##y; } \
170  }
171 
172 #if ITK_TEMPLATE_EXPLICIT
173 # include "Templates/itkGaussianDerivativeImageFunction+-.h"
174 #endif
175 
176 #if ITK_TEMPLATE_TXX
178 #endif
179 
180 #endif

Generated at Sat May 18 2013 23:40:01 for Orfeo Toolbox with doxygen 1.8.3.1