Orfeo Toolbox  3.16
itkDiscreteGaussianDerivativeImageFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Insight Segmentation & Registration Toolkit
4  Module: $RCSfile: itkDiscreteGaussianDerivativeImageFilter.h,v $
5  Language: C++
6  Date: $Date: 2010-06-10 13:02:23 $
7  Version: $Revision: 1.8 $
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 
18 #ifndef __itkDiscreteGaussianDerivativeImageFilter_h
19 #define __itkDiscreteGaussianDerivativeImageFilter_h
20 
21 #include "itkImageToImageFilter.h"
22 #include "itkFixedArray.h"
23 #include "itkImage.h"
24 
25 namespace itk
26 {
59 template <class TInputImage, class TOutputImage >
61  public ImageToImageFilter< TInputImage, TOutputImage >
62 {
63 public:
69 
71  itkNewMacro(Self);
72 
75 
77  typedef TInputImage InputImageType;
78  typedef TOutputImage OutputImageType;
79 
82  typedef typename TOutputImage::PixelType OutputPixelType;
83  typedef typename TOutputImage::InternalPixelType OutputInternalPixelType;
84  typedef typename TInputImage::PixelType InputPixelType;
85  typedef typename TInputImage::InternalPixelType InputInternalPixelType;
86 
89  itkStaticConstMacro(ImageDimension, unsigned int,
90  TOutputImage::ImageDimension);
91 
94 
97 
101  itkSetMacro(Order, OrderArrayType);
102  itkGetConstMacro(Order, const OrderArrayType);
103 
110  itkSetMacro(Variance, ArrayType);
111  itkGetConstMacro(Variance, const ArrayType);
112 
116  itkSetMacro(MaximumError, ArrayType);
117  itkGetConstMacro(MaximumError, const ArrayType);
118 
121  itkGetConstMacro(MaximumKernelWidth, int);
122  itkSetMacro(MaximumKernelWidth, int);
123 
124 
134  itkSetMacro(InternalNumberOfStreamDivisions,unsigned int);
135  itkGetConstMacro(InternalNumberOfStreamDivisions,unsigned int);
136 
137 
142  void SetOrder (const typename OrderArrayType::ValueType v)
143  {
144  OrderArrayType a;
145  a.Fill(v);
146  this->SetOrder(a);
147  }
148  void SetVariance (const typename ArrayType::ValueType v)
149  {
150  ArrayType a;
151  a.Fill(v);
152  this->SetVariance(a);
153  }
154  void SetMaximumError (const typename ArrayType::ValueType v)
155  {
156  ArrayType a;
157  a.Fill(v);
158  this->SetMaximumError(a);
159  }
164  itkSetMacro(UseImageSpacing, bool);
165  itkGetConstMacro(UseImageSpacing, bool);
166  itkBooleanMacro(UseImageSpacing);
167 
168 #ifdef ITK_USE_CONCEPT_CHECKING
169 
170  itkConceptMacro(OutputHasNumericTraitsCheck,
173 #endif
174 
175 protected:
176 
178  {
179  m_Order.Fill(1);
180  m_Variance.Fill(0.0);
181  m_MaximumError.Fill(0.01);
182  m_MaximumKernelWidth = 32;
183  m_UseImageSpacing = true;
184  m_InternalNumberOfStreamDivisions = ImageDimension*ImageDimension;
185  }
187  void PrintSelf(std::ostream& os, Indent indent) const;
188 
195  virtual void GenerateInputRequestedRegion() throw(InvalidRequestedRegionError);
196 
202  void GenerateData();
203 
204 private:
205 
206  DiscreteGaussianDerivativeImageFilter(const Self&); //purposely not implemented
207  void operator=(const Self&); //purposely not implemented
208 
210  OrderArrayType m_Order;
211 
213  ArrayType m_Variance;
214 
218  ArrayType m_MaximumError;
219 
222  int m_MaximumKernelWidth;
223 
225  bool m_UseImageSpacing;
226 
229  unsigned int m_InternalNumberOfStreamDivisions;
230 };
231 
232 } // end namespace itk
233 
234 #ifndef ITK_MANUAL_INSTANTIATION
236 #endif
237 
238 #endif

Generated at Sat Feb 2 2013 23:35:26 for Orfeo Toolbox with doxygen 1.8.1.1