18#ifndef itkGaussianDerivativeOperator_h
19#define itkGaussianDerivativeOperator_h
44 NearestNeighbourInterpolation,
49extern ITKCommon_EXPORT std::ostream &
104template <
typename TPixel,
unsigned int VDimension = 2,
typename TAllocator = NeighborhoodAllocator<TPixel>>
133 m_NormalizeAcrossScale = flag;
138 return m_NormalizeAcrossScale;
140 itkBooleanMacro(NormalizeAcrossScale);
149 m_Variance = variance;
178 constexpr double Min = 0.00001;
179 const double Max = 1.0 - Min;
181 m_MaximumError = std::clamp(maxerror, Min, Max);
186 return m_MaximumError;
196 m_MaximumKernelWidth = n;
198 itkGetConstMacro(MaximumKernelWidth,
unsigned int);
244 this->FillCenteredDirectional(coeff);
254 bool m_NormalizeAcrossScale{
true };
257 double m_Variance{ 1.0 };
261 double m_MaximumError{ 0.005 };
266 unsigned int m_MaximumKernelWidth{ 30 };
269 unsigned int m_Order{ 1 };
272 double m_Spacing{ 1.0 };
277#ifndef ITK_MANUAL_INSTANTIATION
278# 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....
ITKCommon_EXPORT std::ostream & operator<<(std::ostream &out, typename AnatomicalOrientation::CoordinateEnum value)