18 #ifndef itkGaussianDerivativeImageFunction_h
19 #define itkGaussianDerivativeImageFunction_h
49 template <
typename TInputImage,
typename TOutput =
double>
51 :
public ImageFunction<TInputImage, Vector<TOutput, TInputImage::ImageDimension>, TOutput>
74 static constexpr
unsigned int ImageDimension = InputImageType::ImageDimension;
76 #if !defined(ITK_LEGACY_REMOVE)
77 static constexpr
unsigned int ImageDimension2 = ImageDimension;
86 using typename Superclass::OutputType;
92 #if !defined(ITK_LEGACY_REMOVE)
107 EvaluateAtIndex(
const IndexType & index)
const override;
120 if (val != this->m_UseImageSpacing)
122 this->m_UseImageSpacing = val;
123 this->RecomputeGaussianKernel();
127 itkBooleanMacro(UseImageSpacing);
128 itkGetMacro(UseImageSpacing,
bool);
137 SetSigma(
const double * sigma);
140 SetSigma(
const double sigma);
150 SetExtent(
const double * extent);
153 SetExtent(
const double extent);
166 SetInputImage(
const InputImageType * ptr)
override;
173 PrintSelf(std::ostream & os,
Indent indent)
const override;
178 RecomputeGaussianKernel();
181 double m_Sigma[ImageDimension]{};
188 std::vector<Offset<ImageDimension>> m_ImageNeighborhoodOffsets[ImageDimension]{};
190 double m_Extent[ImageDimension]{};
193 bool m_UseImageSpacing{
true };
202 #ifndef ITK_MANUAL_INSTANTIATION
203 # include "itkGaussianDerivativeImageFunction.hxx"