Orfeo Toolbox  3.16
itkRecursiveGaussianImageFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Insight Segmentation & Registration Toolkit
4  Module: $RCSfile: itkRecursiveGaussianImageFilter.h,v $
5  Language: C++
6  Date: $Date: 2009-04-25 12:28:00 $
7  Version: $Revision: 1.28 $
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 __itkRecursiveGaussianImageFilter_h
18 #define __itkRecursiveGaussianImageFilter_h
19 
21 
22 namespace itk
23 {
24 
55 template <typename TInputImage, typename TOutputImage=TInputImage>
57  public RecursiveSeparableImageFilter<TInputImage,TOutputImage>
58 {
59 public:
65 
66  typedef typename Superclass::RealType RealType;
68 
70  itkNewMacro(Self);
71 
74 
77  itkGetConstMacro( Sigma, ScalarRealType );
78  itkSetMacro( Sigma, ScalarRealType );
79 
83  typedef enum { ZeroOrder, FirstOrder, SecondOrder } OrderEnumType;
84 
86  typedef TOutputImage OutputImageType;
87 
88 
104  itkSetMacro( NormalizeAcrossScale, bool );
105  itkGetConstMacro( NormalizeAcrossScale, bool );
106 
113  itkSetMacro( Order, OrderEnumType );
114  itkGetConstMacro( Order, OrderEnumType );
115 
117  void SetZeroOrder();
118 
120  void SetFirstOrder();
121 
123  void SetSecondOrder();
124 
125 
126 protected:
129  void PrintSelf(std::ostream& os, Indent indent) const;
130 
135  virtual void SetUp(ScalarRealType spacing);
136 
137 private:
138  RecursiveGaussianImageFilter(const Self&); //purposely not implemented
139  void operator=(const Self&); //purposely not implemented
140 
142  void ComputeNCoefficients(ScalarRealType sigmad,
143  ScalarRealType A1, ScalarRealType B1, ScalarRealType W1, ScalarRealType L1,
144  ScalarRealType A2, ScalarRealType B2, ScalarRealType W2, ScalarRealType L2,
145  ScalarRealType& N0, ScalarRealType& N1,
146  ScalarRealType& N2, ScalarRealType& N3,
147  ScalarRealType& SN, ScalarRealType& DN, ScalarRealType& EN);
149  void ComputeDCoefficients(ScalarRealType sigmad,
150  ScalarRealType W1, ScalarRealType L1, ScalarRealType W2, ScalarRealType L2,
151  ScalarRealType& SD, ScalarRealType& DD, ScalarRealType& ED);
154  void ComputeRemainingCoefficients(bool symmetric);
155 
158 
161 
163 };
164 
165 } // end namespace itk
166 
167 #ifndef ITK_MANUAL_INSTANTIATION
169 #endif
170 
171 #endif

Generated at Sun Feb 3 2013 00:01:49 for Orfeo Toolbox with doxygen 1.8.1.1