18 #ifndef itkDiscreteGaussianDerivativeImageFunction_h
19 #define itkDiscreteGaussianDerivativeImageFunction_h
46 template<
typename TInputImage,
typename TOutput =
double >
77 static constexpr
unsigned int ImageDimension2 = InputImageType::ImageDimension;
87 Self::ImageDimension2 >;
91 Self::ImageDimension2 >;
108 OutputType Evaluate(
const PointType & point)
const override;
111 OutputType EvaluateAtIndex(
const IndexType & index)
const override;
114 OutputType EvaluateAtContinuousIndex(
115 const ContinuousIndexType & index)
const override;
123 itkSetMacro(Variance, VarianceArrayType);
124 itkGetConstMacro(Variance,
const VarianceArrayType);
125 itkSetVectorMacro(Variance,
double, VarianceArrayType::Length);
131 m_Variance.Fill(variance);
141 SetVariance(sigma * sigma);
150 itkSetClampMacro(MaximumError,
double, 0.00001, 0.99999);
151 itkGetConstMacro(MaximumError,
double);
155 itkSetMacro(Order, OrderArrayType);
156 itkGetConstMacro(Order,
const OrderArrayType);
157 itkSetVectorMacro(Order,
unsigned int, OrderArrayType::Length);
171 itkSetMacro(NormalizeAcrossScale,
bool);
172 itkGetConstMacro(NormalizeAcrossScale,
bool);
173 itkBooleanMacro(NormalizeAcrossScale);
177 itkSetMacro(UseImageSpacing,
bool);
178 itkGetConstMacro(UseImageSpacing,
bool);
179 itkBooleanMacro(UseImageSpacing);
186 itkSetMacro(MaximumKernelWidth,
unsigned int);
187 itkGetConstMacro(MaximumKernelWidth,
unsigned int);
191 itkSetMacro(InterpolationMode, InterpolationModeType);
192 itkGetConstMacro(InterpolationMode, InterpolationModeType);
199 void SetInputImage(
const InputImageType *ptr)
override;
214 void PrintSelf(std::ostream & os,
Indent indent)
const override;
216 void RecomputeGaussianKernel();
256 #ifndef ITK_MANUAL_INSTANTIATION
257 #include "itkDiscreteGaussianDerivativeImageFunction.hxx"
void SetSigma(const double sigma)
typename Superclass::IndexValueType IndexValueType
Light weight base class for most itk classes.
~DiscreteGaussianDerivativeImageFunction() override
typename Superclass::IndexType IndexType
Compute the convolution of a neighborhood operator with the image at a specific location in space...
DiscreteGaussianDerivativeImageFunction(const Self &)
typename Superclass::InputPixelType InputPixelType
typename Superclass::PointType PointType
OperatorImageFunctionPointer m_OperatorImageFunction
Compute the discrete gaussian derivatives of an the image at a specific location in space...
virtual void Initialize()
typename Superclass::InputImageType InputImageType
typename Superclass::ContinuousIndexType ContinuousIndexType
A NeighborhoodOperator whose coefficients are a one dimensional, discrete derivative Gaussian kernel...
ImageBaseType::IndexType IndexType
bool m_NormalizeAcrossScale
signed long IndexValueType
InterpolationModeType m_InterpolationMode
unsigned int m_MaximumKernelWidth
typename Superclass::OutputType OutputType
void operator=(const Self &)
KernelType m_DerivativeKernel
VarianceArrayType m_Variance
Control indentation during Print() invocation.
ImageBaseType::PointType PointType
typename OperatorImageFunctionType::Pointer OperatorImageFunctionPointer
virtual void SetOrder(unsigned int order)
virtual void SetVariance(double variance)
Evaluates a function of an image at specified position.
GaussianDerivativeOperatorArrayType m_OperatorArray