19 #ifndef itkGaussianInterpolateImageFunction_h
20 #define itkGaussianInterpolateImageFunction_h
26 #include "vnl/vnl_erf.h"
52 template <
typename TInputImage,
typename TCoordRep =
double>
72 static constexpr
unsigned int ImageDimension = TInputImage::ImageDimension;
96 Superclass::SetInputImage( image );
97 this->ComputeBoundingBox();
104 if( this->m_Sigma != s )
107 this->ComputeBoundingBox();
114 for(
unsigned int d = 0; d < ImageDimension; d++ )
118 this->SetSigma( sigma );
120 itkGetConstMacro( Sigma, ArrayType );
129 this->ComputeBoundingBox();
133 itkGetConstMacro( Alpha, RealType );
139 this->SetSigma( sigma );
140 this->SetAlpha( alpha );
148 return this->EvaluateAtContinuousIndex( cindex,
nullptr );
154 void PrintSelf( std::ostream& os,
Indent indent )
const override;
156 virtual void ComputeBoundingBox();
158 virtual void ComputeErrorFunctionArray(
unsigned int dimension, RealType cindex,
159 vnl_vector<RealType> &erfArray, vnl_vector<RealType> &gerfArray,
160 bool evaluateGradient =
false )
const;
163 itkSetMacro( BoundingBoxStart, ArrayType );
164 itkGetConstMacro( BoundingBoxStart, ArrayType );
168 itkSetMacro( BoundingBoxEnd, ArrayType );
169 itkGetConstMacro( BoundingBoxEnd, ArrayType );
173 itkSetMacro( CutOffDistance, ArrayType );
174 itkGetConstMacro( CutOffDistance, ArrayType );
180 virtual OutputType EvaluateAtContinuousIndex(
181 const ContinuousIndexType &, OutputType * )
const;
196 #ifndef ITK_MANUAL_INSTANTIATION
197 #include "itkGaussianInterpolateImageFunction.hxx"
typename Superclass::ContinuousIndexType ContinuousIndexType
Light weight base class for most itk classes.
virtual void SetAlpha(const RealType a)
ArrayType m_CutOffDistance
ArrayType m_ScalingFactor
virtual void SetSigma(RealType *s)
typename Superclass::RealType RealType
Evaluates the Gaussian interpolation of an image.
virtual void SetParameters(RealType *sigma, RealType alpha)
typename NumericTraits< typename TInputImage::PixelType >::RealType RealType
OutputType EvaluateAtContinuousIndex(const ContinuousIndexType &cindex) const override
ImageBaseType::IndexType IndexType
ArrayType m_BoundingBoxStart
bool NotExactlyEquals(const TInput1 &x1, const TInput2 &x2)
ArrayType m_BoundingBoxEnd
void SetInputImage(const TInputImage *image) override
Base class for all image interpolaters.
typename Superclass::OutputType OutputType
Control indentation during Print() invocation.
virtual void SetSigma(const ArrayType s)
typename Superclass::IndexType IndexType
typename Superclass::InputImageType InputImageType