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 const 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 virtual void PrintSelf(std::ostream & os,
Indent i)
const;
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";
215 #ifndef ITK_MANUAL_INSTANTIATION
216 #include "itkGaussianDerivativeOperator.hxx"
void SetNormalizeAcrossScale(bool flag)
double GetSpacing() const
A NeighborhoodOperator whose coefficients are a one dimensional, discrete Gaussian kernel...
bool m_NormalizeAcrossScale
void Fill(const CoefficientVector &coeff)
void SetVariance(const double variance)
A NeighborhoodOperator for taking an n-th order derivative at a pixel.
NeighborhoodOperator< TPixel, VDimension, TAllocator > Superclass
void SetSpacing(const double spacing)
unsigned int GetOrder() const
std::vector< PixelRealType > CoefficientVector
Virtual class that defines a common interface to all neighborhood operator subtypes.
const char * GetNameOfClass() const
bool GetNormalizeAcrossScale() const
A NeighborhoodOperator whose coefficients are a one dimensional, discrete derivative Gaussian kernel...
GaussianOperator< TPixel, VDimension, TAllocator > GaussianOperatorType
Superclass::CoefficientVector CoefficientVector
DerivativeOperator< TPixel, VDimension, TAllocator > DerivativeOperatorType
unsigned int m_MaximumKernelWidth
Control indentation during Print() invocation.
void SetMaximumKernelWidth(unsigned int n)
void SetMaximumError(const double maxerror)
void SetOrder(const unsigned int order)
GaussianDerivativeOperator Self
double GetVariance() const