17 #ifndef itkGaussianInterpolateImageFunction_h
18 #define itkGaussianInterpolateImageFunction_h
24 #include "vnl/vnl_erf.h"
50 template <
typename TInputImage,
typename TCoordRep =
double>
68 itkStaticConstMacro( ImageDimension,
unsigned int,
69 TInputImage::ImageDimension );
93 Superclass::SetInputImage( image );
94 this->ComputeBoundingBox();
101 if( this->m_Sigma != s )
104 this->ComputeBoundingBox();
111 for(
unsigned int d = 0; d < ImageDimension; d++ )
115 this->SetSigma( sigma );
117 itkGetConstMacro( Sigma, ArrayType );
126 this->ComputeBoundingBox();
130 itkGetConstMacro( Alpha, RealType );
136 this->SetSigma( sigma );
137 this->SetAlpha( alpha );
145 return this->EvaluateAtContinuousIndex( cindex, ITK_NULLPTR );
153 virtual void ComputeBoundingBox();
155 virtual void ComputeErrorFunctionArray(
unsigned int dimension, RealType cindex,
156 vnl_vector<RealType> &erfArray, vnl_vector<RealType> &gerfArray,
157 bool evaluateGradient =
false )
const;
160 itkSetMacro( BoundingBoxStart, ArrayType );
161 itkGetConstMacro( BoundingBoxStart, ArrayType );
165 itkSetMacro( BoundingBoxEnd, ArrayType );
166 itkGetConstMacro( BoundingBoxEnd, ArrayType );
170 itkSetMacro( CutOffDistance, ArrayType );
171 itkGetConstMacro( CutOffDistance, ArrayType );
179 virtual OutputType EvaluateAtContinuousIndex(
180 const ContinuousIndexType &, OutputType * )
const;
195 #ifndef ITK_MANUAL_INSTANTIATION
196 #include "itkGaussianInterpolateImageFunction.hxx"
virtual void PrintSelf(std::ostream &os, Indent indent) const override
Light weight base class for most itk classes.
~GaussianInterpolateImageFunction()
virtual void SetAlpha(const RealType a)
ArrayType m_CutOffDistance
ArrayType m_ScalingFactor
GaussianInterpolateImageFunction Self
virtual void SetSigma(RealType *s)
Evaluates the Gaussian interpolation of an image.
SmartPointer< Self > Pointer
virtual void SetParameters(RealType *sigma, RealType alpha)
virtual OutputType EvaluateAtContinuousIndex(const ContinuousIndexType &cindex) const override
Superclass::OutputType OutputType
ArrayType m_BoundingBoxStart
bool NotExactlyEquals(const TInput1 &x1, const TInput2 &x2)
ArrayType m_BoundingBoxEnd
Superclass::ContinuousIndexType ContinuousIndexType
Base class for all image interpolaters.
virtual void SetInputImage(const TInputImage *image) override
SmartPointer< const Self > ConstPointer
Superclass::IndexType IndexType
Control indentation during Print() invocation.
InterpolateImageFunction< TInputImage, TCoordRep > Superclass
virtual void SetSigma(const ArrayType s)
FixedArray< RealType, ImageDimension > ArrayType
Superclass::InputImageType InputImageType
NumericTraits< typename TInputImage::PixelType >::RealType RealType
Superclass::RealType RealType