18 #ifndef __itkDiscreteGaussianImageFilter_h
19 #define __itkDiscreteGaussianImageFilter_h
61 template<
class TInputImage,
class TOutputImage >
95 itkStaticConstMacro(ImageDimension,
unsigned int,
96 TOutputImage::ImageDimension);
108 itkGetConstMacro(Variance,
const ArrayType);
115 itkGetConstMacro(MaximumError,
const ArrayType);
120 itkGetConstMacro(MaximumKernelWidth,
int);
121 itkSetMacro(MaximumKernelWidth,
int);
129 itkGetConstMacro(FilterDimensionality,
unsigned int);
130 itkSetMacro(FilterDimensionality,
unsigned int);
144 m_MaximumError.Fill(v);
148 void SetVariance(
const double *v)
152 for (
unsigned int i = 0; i < ImageDimension; i++ )
156 this->SetVariance(dv);
159 void SetVariance(
const float *v)
163 for (
unsigned int i = 0; i < ImageDimension; i++ )
167 this->SetVariance(dv);
170 void SetMaximumError(
const double *v)
174 for (
unsigned int i = 0; i < ImageDimension; i++ )
178 this->SetMaximumError(dv);
181 void SetMaximumError(
const float *v)
185 for (
unsigned int i = 0; i < ImageDimension; i++ )
189 this->SetMaximumError(dv);
195 void SetUseImageSpacingOn()
196 { this->SetUseImageSpacing(
true); }
200 void SetUseImageSpacingOff()
201 { this->SetUseImageSpacing(
false); }
205 itkSetMacro(UseImageSpacing,
bool);
206 itkGetConstMacro(UseImageSpacing,
bool);
218 itkSetMacro(InternalNumberOfStreamDivisions,
unsigned int);
219 itkGetConstReferenceMacro(InternalNumberOfStreamDivisions,
unsigned int);
227 virtual void GenerateInputRequestedRegion()
230 #ifdef ITK_USE_CONCEPT_CHECKING
242 m_Variance.Fill(0.0);
243 m_MaximumError.Fill(0.01);
244 m_MaximumKernelWidth = 32;
245 m_UseImageSpacing =
true;
246 m_FilterDimensionality = ImageDimension;
247 m_InternalNumberOfStreamDivisions = ImageDimension * ImageDimension;
251 void PrintSelf(std::ostream & os,
Indent indent)
const;
262 void operator=(
const Self &);
289 #ifndef ITK_MANUAL_INSTANTIATION
290 #include "itkDiscreteGaussianImageFilter.hxx"