ITK  4.6.0
Insight Segmentation and Registration Toolkit
itkRecursiveGaussianImageFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright Insight Software 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 #ifndef __itkRecursiveGaussianImageFilter_h
19 #define __itkRecursiveGaussianImageFilter_h
20 
22 
23 namespace itk
24 {
61 template< typename TInputImage, typename TOutputImage = TInputImage >
63  public RecursiveSeparableImageFilter< TInputImage, TOutputImage >
64 {
65 public:
71 
72  typedef typename Superclass::RealType RealType;
74 
76  itkNewMacro(Self);
77 
80 
85  itkGetConstMacro(Sigma, ScalarRealType);
86  itkSetMacro(Sigma, ScalarRealType);
88 
93 
95  typedef TOutputImage OutputImageType;
96 
136  itkSetMacro(NormalizeAcrossScale, bool);
137  itkGetConstMacro(NormalizeAcrossScale, bool);
138 
145  itkSetMacro(Order, OrderEnumType);
146  itkGetConstMacro(Order, OrderEnumType);
148 
150  void SetZeroOrder();
151 
153  void SetFirstOrder();
154 
156  void SetSecondOrder();
157 
158 protected:
161  void PrintSelf(std::ostream & os, Indent indent) const;
162 
167  virtual void SetUp(ScalarRealType spacing);
168 
169  /* See superclass for doxygen. This method adds the additional check
170  * that sigma is greater than zero. */
171  virtual void VerifyPreconditions();
172 
173 private:
174  RecursiveGaussianImageFilter(const Self &); //purposely not implemented
175  void operator=(const Self &); //purposely not implemented
176 
181  ScalarRealType & N0, ScalarRealType & N1,
182  ScalarRealType & N2, ScalarRealType & N3,
183  ScalarRealType & SN, ScalarRealType & DN, ScalarRealType & EN);
184 
188  ScalarRealType & SD, ScalarRealType & DD, ScalarRealType & ED);
189 
192  void ComputeRemainingCoefficients(bool symmetric);
193 
196 
199 
201 };
202 } // end namespace itk
203 
204 #ifndef ITK_MANUAL_INSTANTIATION
205 #include "itkRecursiveGaussianImageFilter.hxx"
206 #endif
207 
208 #endif
virtual void SetUp(ScalarRealType spacing)
void PrintSelf(std::ostream &os, Indent indent) const
Base class for recursive convolution with a kernel.
NumericTraits< InputPixelType >::RealType RealType
Base class for computing IIR convolution with an approximation of a Gaussian kernel.
NumericTraits< InputPixelType >::ScalarRealType ScalarRealType
Base class for all process objects that output image data.
void ComputeRemainingCoefficients(bool symmetric)
void ComputeNCoefficients(ScalarRealType sigmad, ScalarRealType A1, ScalarRealType B1, ScalarRealType W1, ScalarRealType L1, ScalarRealType A2, ScalarRealType B2, ScalarRealType W2, ScalarRealType L2, ScalarRealType &N0, ScalarRealType &N1, ScalarRealType &N2, ScalarRealType &N3, ScalarRealType &SN, ScalarRealType &DN, ScalarRealType &EN)
RecursiveSeparableImageFilter< TInputImage, TOutputImage > Superclass
void ComputeDCoefficients(ScalarRealType sigmad, ScalarRealType W1, ScalarRealType L1, ScalarRealType W2, ScalarRealType L2, ScalarRealType &SD, ScalarRealType &DD, ScalarRealType &ED)
Control indentation during Print() invocation.
Definition: itkIndent.h:49
virtual void VerifyPreconditions()
Verifies that the process object has been configured correctly, that all required inputs are set...