Orfeo Toolbox  3.16
itkSmoothingRecursiveGaussianImageFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Insight Segmentation & Registration Toolkit
4  Module: $RCSfile: itkSmoothingRecursiveGaussianImageFilter.h,v $
5  Language: C++
6  Date: $Date: 2010-06-18 05:57:42 $
7  Version: $Revision: 1.17 $
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 __itkSmoothingRecursiveGaussianImageFilter_h
18 #define __itkSmoothingRecursiveGaussianImageFilter_h
19 
21 #include "itkCastImageFilter.h"
22 #include "itkImage.h"
23 #include "itkPixelTraits.h"
24 #include "itkCommand.h"
25 #include "itkFixedArray.h"
26 
27 
28 namespace itk
29 {
30 
43 template <typename TInputImage,
44  typename TOutputImage= TInputImage >
46  public ImageToImageFilter<TInputImage,TOutputImage>
47 {
48 public:
54 
55 
57  typedef TInputImage InputImageType;
58  typedef TOutputImage OutputImageType;
59  typedef typename TInputImage::PixelType PixelType;
62 
63 
67 
69  itkStaticConstMacro(ImageDimension, unsigned int,
70  TInputImage::ImageDimension);
71 
73  typedef FixedArray< ScalarRealType,
74  itkGetStaticConstMacro(ImageDimension) > SigmaArrayType;
75 
76 
82  typedef Image<InternalRealType,
83  itkGetStaticConstMacro(ImageDimension) > RealImageType;
84 
90 
96 
98  typedef CastImageFilter<
102 
103 
106 
109 
112 
114  typedef typename OutputImageType::Pointer OutputImagePointer;
115 
117  itkNewMacro(Self);
118 
123  void SetSigmaArray( const SigmaArrayType & sigmas );
124  void SetSigma( ScalarRealType sigma );
125  SigmaArrayType GetSigmaArray() const;
126  ScalarRealType GetSigma() const;
127 
129  void SetNormalizeAcrossScale( bool normalizeInScaleSpace );
130  itkGetConstMacro( NormalizeAcrossScale, bool );
131 
132  void SetNumberOfThreads( int nb );
133 
134 #ifdef ITK_USE_CONCEPT_CHECKING
135 
136  itkConceptMacro(InputHasNumericTraitsCheck,
139 #endif
140 
141 protected:
144  void PrintSelf(std::ostream& os, Indent indent) const;
145 
147  void GenerateData( void );
148 
154  virtual void GenerateInputRequestedRegion() throw(InvalidRequestedRegionError);
155 
156  // Override since the filter produces the entire dataset
157  void EnlargeOutputRequestedRegion(DataObject *output);
158 
159 private:
160  SmoothingRecursiveGaussianImageFilter(const Self&); //purposely not implemented
161  void operator=(const Self&); //purposely not implemented
162 
163  InternalGaussianFilterPointer m_SmoothingFilters[ImageDimension-1];
164  FirstGaussianFilterPointer m_FirstSmoothingFilter;
165  CastingFilterPointer m_CastingFilter;
166 
168  bool m_NormalizeAcrossScale;
169 
171  SigmaArrayType m_Sigma;
172 };
173 
174 } // end namespace itk
175 
176 #ifndef ITK_MANUAL_INSTANTIATION
178 #endif
179 
180 #endif

Generated at Sun Jun 16 2013 00:08:29 for Orfeo Toolbox with doxygen 1.8.3.1