18 #ifndef __itkDiscreteGaussianDerivativeImageFunction_h
19 #define __itkDiscreteGaussianDerivativeImageFunction_h
48 template <
class TInputImage,
class TOutput=
double>
79 itkStaticConstMacro(ImageDimension2,
unsigned int,
80 InputImageType::ImageDimension);
110 virtual OutputType Evaluate(
const PointType& point)
const;
113 virtual OutputType EvaluateAtIndex(
const IndexType & index )
const;
116 virtual OutputType EvaluateAtContinuousIndex(
117 const ContinuousIndexType & index )
const;
125 itkSetMacro( Variance, VarianceArrayType );
126 itkGetConstMacro( Variance,
const VarianceArrayType );
127 itkSetVectorMacro( Variance,
double, VarianceArrayType::Length );
130 virtual void SetVariance(
double variance )
132 m_Variance.Fill( variance );
139 void SetSigma(
const double sigma )
141 SetVariance( sigma * sigma );
150 itkSetClampMacro( MaximumError,
double, 0.00001, 0.99999 );
151 itkGetConstMacro( MaximumError,
double );
154 itkSetMacro( Order, OrderArrayType );
155 itkGetConstMacro( Order,
const OrderArrayType );
156 itkSetVectorMacro( Order,
unsigned int, OrderArrayType::Length );
159 virtual void SetOrder(
unsigned int order )
161 m_Order.Fill( order );
168 itkSetMacro( NormalizeAcrossScale,
bool );
169 itkGetConstMacro( NormalizeAcrossScale,
bool );
170 itkBooleanMacro( NormalizeAcrossScale );
173 itkSetMacro( UseImageSpacing,
bool );
174 itkGetConstMacro( UseImageSpacing,
bool );
175 itkBooleanMacro( UseImageSpacing );
181 itkSetMacro( MaximumKernelWidth,
unsigned int );
182 itkGetConstMacro( MaximumKernelWidth,
unsigned int );
185 itkSetMacro( InterpolationMode, InterpolationModeType );
186 itkGetConstMacro( InterpolationMode, InterpolationModeType );
192 virtual void SetInputImage(
const InputImageType * ptr );
207 void PrintSelf(std::ostream& os,
Indent indent)
const;
209 void RecomputeGaussianKernel();
252 #define ITK_TEMPLATE_DiscreteGaussianDerivativeImageFunction(_, EXPORT, x, y) namespace itk { \
253 _(2(class EXPORT DiscreteGaussianDerivativeImageFunction< ITK_TEMPLATE_2 x >)) \
254 namespace Templates { typedef DiscreteGaussianDerivativeImageFunction< ITK_TEMPLATE_2 x > \
255 DiscreteGaussianDerivativeImageFunction##y; } \
258 #if ITK_TEMPLATE_EXPLICIT
259 # include "Templates/itkDiscreteGaussianDerivativeImageFunction+-.h"