18 #ifndef itkDiscreteGaussianImageFilter_h
19 #define itkDiscreteGaussianImageFilter_h
62 template <
typename TInputImage,
typename TOutputImage = TInputImage>
97 static constexpr
unsigned int ImageDimension = TOutputImage::ImageDimension;
123 itkGetConstMacro(Variance,
const ArrayType);
130 itkGetConstMacro(MaximumError,
const ArrayType);
135 itkGetConstMacro(MaximumKernelWidth,
int);
136 itkSetMacro(MaximumKernelWidth,
int);
144 itkGetConstMacro(FilterDimensionality,
unsigned int);
145 itkSetMacro(FilterDimensionality,
unsigned int);
168 m_MaximumError.Fill(v);
177 for (
unsigned int i = 0; i < ImageDimension; i++)
181 this->SetVariance(dv);
189 for (
unsigned int i = 0; i < ImageDimension; i++)
193 this->SetVariance(dv);
204 for (
unsigned int i = 0; i < ImageDimension; i++)
206 variance[i] = sigmas[i] * sigmas[i];
208 this->SetVariance(variance);
213 this->SetVariance(sigma * sigma);
222 for (
unsigned int i = 0; i < ImageDimension; i++)
224 sigmas[i] = std::sqrt(m_Variance[i]);
235 return std::sqrt(m_Variance[0]);
243 for (
unsigned int i = 0; i < ImageDimension; i++)
247 this->SetMaximumError(dv);
255 for (
unsigned int i = 0; i < ImageDimension; i++)
259 this->SetMaximumError(dv);
268 this->SetUseImageSpacing(
true);
276 this->SetUseImageSpacing(
false);
281 itkSetMacro(UseImageSpacing,
bool);
282 itkGetConstMacro(UseImageSpacing,
bool);
294 itkLegacyMacro(
unsigned int GetInternalNumberOfStreamDivisions()
const);
295 itkLegacyMacro(
void SetInternalNumberOfStreamDivisions(
unsigned int));
304 GenerateInputRequestedRegion()
override;
306 #ifdef ITK_USE_CONCEPT_CHECKING
317 m_Variance.Fill(0.0);
318 m_MaximumError.Fill(0.01);
319 m_MaximumKernelWidth = 32;
320 m_UseImageSpacing =
true;
321 m_FilterDimensionality = ImageDimension;
322 m_InputBoundaryCondition = &m_InputDefaultBoundaryCondition;
323 m_RealBoundaryCondition = &m_RealDefaultBoundaryCondition;
328 PrintSelf(std::ostream & os,
Indent indent)
const override;
336 GenerateData()
override;
373 #ifndef ITK_MANUAL_INSTANTIATION
374 # include "itkDiscreteGaussianImageFilter.hxx"