18 #ifndef itkDiscreteGaussianImageFilter_h
19 #define itkDiscreteGaussianImageFilter_h
61 template<
typename TInputImage,
typename 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);
152 for (
unsigned int i = 0; i < ImageDimension; i++ )
156 this->SetVariance(dv);
163 for (
unsigned int i = 0; i < ImageDimension; i++ )
167 this->SetVariance(dv);
174 for (
unsigned int i = 0; i < ImageDimension; i++ )
178 this->SetMaximumError(dv);
185 for (
unsigned int i = 0; i < ImageDimension; i++ )
189 this->SetMaximumError(dv);
196 { this->SetUseImageSpacing(
true); }
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() ITK_OVERRIDE;
229 #ifdef ITK_USE_CONCEPT_CHECKING
241 m_Variance.Fill(0.0);
242 m_MaximumError.Fill(0.01);
243 m_MaximumKernelWidth = 32;
244 m_UseImageSpacing =
true;
245 m_FilterDimensionality = ImageDimension;
246 m_InternalNumberOfStreamDivisions = ImageDimension * ImageDimension;
250 void PrintSelf(std::ostream & os,
Indent indent)
const ITK_OVERRIDE;
257 void GenerateData() ITK_OVERRIDE;
273 int m_MaximumKernelWidth;
276 unsigned int m_FilterDimensionality;
279 bool m_UseImageSpacing;
283 unsigned int m_InternalNumberOfStreamDivisions;
287 #ifndef ITK_MANUAL_INSTANTIATION
288 #include "itkDiscreteGaussianImageFilter.hxx"
SmartPointer< Self > Pointer
DiscreteGaussianImageFilter Self
void SetUseImageSpacingOn()
void SetVariance(const double *v)
ImageToImageFilter< TInputImage, TOutputImage > Superclass
TOutputImage::InternalPixelType OutputInternalPixelType
TOutputImage OutputImageType
TInputImage::PixelType InputPixelType
TInputImage InputImageType
Base class for all process objects that output image data.
TOutputImage::PixelType OutputPixelType
virtual ~DiscreteGaussianImageFilter() override
void SetVariance(const typename ArrayType::ValueType v)
DiscreteGaussianImageFilter()
NumericTraits< InputPixelType >::ValueType InputPixelValueType
SmartPointer< const Self > ConstPointer
void SetMaximumError(const float *v)
void SetUseImageSpacingOff()
void SetMaximumError(const double *v)
void SetVariance(const float *v)
NumericTraits< OutputPixelType >::ValueType OutputPixelValueType
FixedArray< double, itkGetStaticConstMacro(ImageDimension) > ArrayType
Base class for filters that take an image as input and produce an image as output.
Control indentation during Print() invocation.
TInputImage::InternalPixelType InputInternalPixelType
Define additional traits for native types such as int or float.
#define itkConceptMacro(name, concept)
Blurs an image by separable convolution with discrete gaussian kernels. This filter performs Gaussian...
void SetMaximumError(const typename ArrayType::ValueType v)