19 #ifndef itkGaussianInterpolateImageFunction_h
20 #define itkGaussianInterpolateImageFunction_h
26 #include "vnl/vnl_erf.h"
52 template <
typename TInputImage,
typename TCoordRep =
double>
70 itkStaticConstMacro( ImageDimension,
unsigned int,
71 TInputImage::ImageDimension );
95 Superclass::SetInputImage( image );
96 this->ComputeBoundingBox();
103 if( this->m_Sigma != s )
106 this->ComputeBoundingBox();
113 for(
unsigned int d = 0; d < ImageDimension; d++ )
117 this->SetSigma( sigma );
119 itkGetConstMacro( Sigma, ArrayType );
128 this->ComputeBoundingBox();
132 itkGetConstMacro( Alpha, RealType );
138 this->SetSigma( sigma );
139 this->SetAlpha( alpha );
147 return this->EvaluateAtContinuousIndex( cindex, ITK_NULLPTR );
153 void PrintSelf( std::ostream& os,
Indent indent )
const ITK_OVERRIDE;
155 virtual void ComputeBoundingBox();
157 virtual void ComputeErrorFunctionArray(
unsigned int dimension, RealType cindex,
158 vnl_vector<RealType> &erfArray, vnl_vector<RealType> &gerfArray,
159 bool evaluateGradient =
false )
const;
162 itkSetMacro( BoundingBoxStart, ArrayType );
163 itkGetConstMacro( BoundingBoxStart, ArrayType );
167 itkSetMacro( BoundingBoxEnd, ArrayType );
168 itkGetConstMacro( BoundingBoxEnd, ArrayType );
172 itkSetMacro( CutOffDistance, ArrayType );
173 itkGetConstMacro( CutOffDistance, ArrayType );
181 virtual OutputType EvaluateAtContinuousIndex(
182 const ContinuousIndexType &, OutputType * )
const;
197 #ifndef ITK_MANUAL_INSTANTIATION
198 #include "itkGaussianInterpolateImageFunction.hxx"
Light weight base class for most itk classes.
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
~GaussianInterpolateImageFunction() 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
ImageBaseType::IndexType IndexType