19 #ifndef itkGaussianInterpolateImageFunction_h
20 #define itkGaussianInterpolateImageFunction_h
26 #include "vnl/vnl_erf.h"
53 template <
typename TInputImage,
typename TCoordinate =
double>
72 static constexpr
unsigned int ImageDimension = TInputImage::ImageDimension;
76 using typename Superclass::OutputType;
79 using typename Superclass::InputImageType;
82 using typename Superclass::RealType;
91 using typename Superclass::ContinuousIndexType;
100 Superclass::SetInputImage(image);
101 this->ComputeBoundingBox();
109 if (this->m_Sigma != s)
112 this->ComputeBoundingBox();
120 for (
unsigned int d = 0; d < ImageDimension; ++d)
124 this->SetSigma(sigma);
126 itkGetConstMacro(Sigma, ArrayType);
136 this->ComputeBoundingBox();
140 itkGetConstMacro(Alpha, RealType);
147 this->SetSigma(sigma);
148 this->SetAlpha(alpha);
156 return this->EvaluateAtContinuousIndex(cindex,
nullptr);
160 GetRadius()
const override;
166 PrintSelf(std::ostream & os,
Indent indent)
const override;
169 ComputeBoundingBox();
178 ComputeErrorFunctionArray(
const RegionType & region,
179 unsigned int dimension,
181 vnl_vector<RealType> & erfArray,
182 vnl_vector<RealType> & gerfArray,
183 bool evaluateGradient =
false)
const;
186 itkSetMacro(BoundingBoxStart,
ArrayType);
187 itkGetConstMacro(BoundingBoxStart,
ArrayType);
192 itkGetConstMacro(BoundingBoxEnd,
ArrayType);
197 itkGetConstMacro(CutOffDistance,
ArrayType);
217 #ifndef ITK_MANUAL_INSTANTIATION
218 # include "itkGaussianInterpolateImageFunction.hxx"