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();
126 itkBooleanMacro(UseImageSpacing);
127 itkGetMacro(UseImageSpacing,
bool);
136 SetSigma(
const double * sigma);
139 SetSigma(
const double sigma);
149 SetExtent(
const double * extent);
152 SetExtent(
const double extent);
165 SetInputImage(
const InputImageType * ptr)
override;
172 PrintSelf(std::ostream & os,
Indent indent)
const override;
177 RecomputeGaussianKernel();
180 double m_Sigma[ImageDimension]{};
187 std::vector<Offset<ImageDimension>> m_ImageNeighborhoodOffsets[ImageDimension]{};
189 double m_Extent[ImageDimension]{};
192 bool m_UseImageSpacing{
true };
201 #ifndef ITK_MANUAL_INSTANTIATION
202 # include "itkGaussianDerivativeImageFunction.hxx"