18 #ifndef itkDiscreteGaussianDerivativeImageFilter_h
19 #define itkDiscreteGaussianDerivativeImageFilter_h
58 template <
typename TInputImage,
typename TOutputImage>
89 static constexpr
unsigned int ImageDimension = TOutputImage::ImageDimension;
111 itkGetConstMacro(Variance,
const ArrayType);
118 itkGetConstMacro(MaximumError,
const ArrayType);
123 itkGetConstMacro(MaximumKernelWidth,
int);
124 itkSetMacro(MaximumKernelWidth,
int);
136 itkSetMacro(InternalNumberOfStreamDivisions,
unsigned int);
137 itkGetConstMacro(InternalNumberOfStreamDivisions,
unsigned int);
146 auto a = MakeFilled<OrderArrayType>(v);
154 auto a = MakeFilled<ArrayType>(v);
155 this->SetVariance(a);
161 auto a = MakeFilled<ArrayType>(v);
162 this->SetMaximumError(a);
169 itkSetMacro(UseImageSpacing,
bool);
170 itkGetConstMacro(UseImageSpacing,
bool);
171 itkBooleanMacro(UseImageSpacing);
177 itkSetMacro(NormalizeAcrossScale,
bool);
178 itkGetConstMacro(NormalizeAcrossScale,
bool);
179 itkBooleanMacro(NormalizeAcrossScale);
182 #ifdef ITK_USE_CONCEPT_CHECKING
192 m_Variance.Fill(0.0);
193 m_MaximumError.Fill(0.01);
194 m_MaximumKernelWidth = 32;
195 m_UseImageSpacing =
true;
196 m_NormalizeAcrossScale =
false;
197 m_InternalNumberOfStreamDivisions = ImageDimension * ImageDimension;
202 PrintSelf(std::ostream & os,
Indent indent)
const override;
211 GenerateInputRequestedRegion()
override;
219 GenerateData()
override;
236 int m_MaximumKernelWidth{};
239 bool m_UseImageSpacing{};
242 bool m_NormalizeAcrossScale{};
246 unsigned int m_InternalNumberOfStreamDivisions{};
250 #ifndef ITK_MANUAL_INSTANTIATION
251 # include "itkDiscreteGaussianDerivativeImageFilter.hxx"