18#ifndef itkGaussianDerivativeOperator_h
19#define itkGaussianDerivativeOperator_h
45 NearestNeighbourInterpolation,
50extern ITKCommon_EXPORT std::ostream &
105template <
typename TPixel,
unsigned int VDimension = 2,
typename TAllocator = NeighborhoodAllocator<TPixel>>
134 m_NormalizeAcrossScale = flag;
139 return m_NormalizeAcrossScale;
141 itkBooleanMacro(NormalizeAcrossScale);
150 m_Variance = variance;
179 constexpr double Min = 0.00001;
180 const double Max = 1.0 - Min;
182 m_MaximumError = std::clamp(maxerror, Min, Max);
187 return m_MaximumError;
197 m_MaximumKernelWidth = n;
199 itkGetConstMacro(MaximumKernelWidth,
unsigned int);
245 this->FillCenteredDirectional(coeff);
255 bool m_NormalizeAcrossScale{
true };
258 double m_Variance{ 1.0 };
262 double m_MaximumError{ 0.005 };
267 unsigned int m_MaximumKernelWidth{ 30 };
270 unsigned int m_Order{ 1 };
273 double m_Spacing{ 1.0 };
278#ifndef ITK_MANUAL_INSTANTIATION
279# include "itkGaussianDerivativeOperator.hxx"
A NeighborhoodOperator for taking an n-th order derivative at a pixel.
GaussianDerivativeOperator class enum classes.
A NeighborhoodOperator whose coefficients are a one dimensional, discrete derivative Gaussian kernel.
void SetSpacing(const double spacing)
CoefficientVector GenerateCoefficients() override
static double ModifiedBesselI0(double)
static double ModifiedBesselI(int, double)
double GetSpacing() const
unsigned int GetOrder() const
CoefficientVector GenerateGaussianCoefficients() const
void SetVariance(const double variance)
bool GetNormalizeAcrossScale() const
void PrintSelf(std::ostream &os, Indent indent) const override
void SetMaximumKernelWidth(unsigned int n)
void Fill(const CoefficientVector &coeff) override
typename std::vector< PixelRealType > CoefficientVector
double GetVariance() const
void SetOrder(const unsigned int order)
static double ModifiedBesselI1(double)
void SetMaximumError(const double maxerror)
void SetNormalizeAcrossScale(bool flag)
A NeighborhoodOperator whose coefficients are a one dimensional, discrete Gaussian kernel.
Control indentation during Print() invocation.
Virtual class that defines a common interface to all neighborhood operator subtypes.
typename std::vector< PixelRealType > CoefficientVector
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
std::ostream & operator<<(std::ostream &os, const Array< TValue > &arr)