18 #ifndef itkGaussianDerivativeOperator_h
19 #define itkGaussianDerivativeOperator_h
77 template<
typename TPixel,
unsigned int VDimension = 2,
78 typename TAllocator = NeighborhoodAllocator< TPixel > >
99 Self & operator=(
const Self & other);
112 itkBooleanMacro(NormalizeAcrossScale);
118 void SetVariance(
const double variance) { m_Variance = variance; }
123 void SetSpacing(
const double spacing) { m_Spacing = spacing; }
133 constexpr
double Min = 0.00001;
134 const double Max = 1.0 - Min;
136 m_MaximumError = std::max( Min, std::min( Max, maxerror ) );
146 m_MaximumKernelWidth = n;
150 void SetOrder(
const unsigned int order) { m_Order = order;}
155 void PrintSelf(std::ostream & os,
Indent i)
const override;
163 static double ModifiedBesselI0(
double);
167 static double ModifiedBesselI1(
double);
171 static double ModifiedBesselI(
int,
double);
178 { this->FillCenteredDirectional(coeff); }
184 CoefficientVector GenerateGaussianCoefficients()
const;
189 return "itkGaussianDerivativeOperator";
193 bool m_NormalizeAcrossScale{
true};
196 double m_Variance{1.0};
200 double m_MaximumError{0.005};
205 unsigned int m_MaximumKernelWidth{30};
208 unsigned int m_Order{1};
211 double m_Spacing{1.0};
215 #ifndef ITK_MANUAL_INSTANTIATION
216 #include "itkGaussianDerivativeOperator.hxx"
const char * GetNameOfClass() const override
void SetNormalizeAcrossScale(bool flag)
double GetSpacing() const
A NeighborhoodOperator whose coefficients are a one dimensional, discrete Gaussian kernel...
void SetVariance(const double variance)
A NeighborhoodOperator for taking an n-th order derivative at a pixel.
typename Superclass::CoefficientVector CoefficientVector
void Fill(const CoefficientVector &coeff) override
void SetSpacing(const double spacing)
unsigned int GetOrder() const
Virtual class that defines a common interface to all neighborhood operator subtypes.
bool GetNormalizeAcrossScale() const
A NeighborhoodOperator whose coefficients are a one dimensional, discrete derivative Gaussian kernel...
Control indentation during Print() invocation.
void SetMaximumKernelWidth(unsigned int n)
void SetMaximumError(const double maxerror)
void SetOrder(const unsigned int order)
std::vector< PixelRealType > CoefficientVector
double GetVariance() const