19#ifndef itkGaussianInterpolateImageFunction_h
20#define itkGaussianInterpolateImageFunction_h
26#include "vnl/vnl_erf.h"
53template <
typename TInputImage,
typename TCoordRep =
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);
136 this->ComputeBoundingBox();
147 this->SetSigma(sigma);
148 this->SetAlpha(alpha);
156 return this->EvaluateAtContinuousIndex(cindex,
nullptr);
179 unsigned int dimension,
181 vnl_vector<RealType> & erfArray,
182 vnl_vector<RealType> & gerfArray,
183 bool evaluateGradient =
false)
const;
217#ifndef ITK_MANUAL_INSTANTIATION
218# include "itkGaussianInterpolateImageFunction.hxx"
NumericTraits< TInputImage::PixelType >::RealType OutputType
Evaluates the Gaussian interpolation of an image.
virtual OutputType EvaluateAtContinuousIndex(const ContinuousIndexType &, OutputType *) const
virtual void ComputeErrorFunctionArray(const RegionType ®ion, unsigned int dimension, RealType cindex, vnl_vector< RealType > &erfArray, vnl_vector< RealType > &gerfArray, bool evaluateGradient=false) const
SizeType GetRadius() const override
GaussianInterpolateImageFunction()
virtual void SetAlpha(const RealType a)
void SetInputImage(const TInputImage *image) override
~GaussianInterpolateImageFunction() override=default
virtual void SetParameters(RealType *sigma, RealType alpha)
RegionType ComputeInterpolationRegion(const ContinuousIndexType &) const
virtual void SetSigma(RealType *s)
OutputType EvaluateAtContinuousIndex(const ContinuousIndexType &cindex) const override
void PrintSelf(std::ostream &os, Indent indent) const override
virtual void ComputeBoundingBox()
virtual void SetSigma(const ArrayType s)
An image region represents a structured region of data.
Control indentation during Print() invocation.
Base class for all image interpolators.
typename NumericTraits< typename TInputImage::PixelType >::RealType RealType
Light weight base class for most itk classes.
ImageBaseType::IndexType IndexType
ImageBaseType::SizeType SizeType
bool NotExactlyEquals(const TInput1 &x1, const TInput2 &x2)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....