18 #ifndef itkGaussianOperator_h
19 #define itkGaussianOperator_h
65 template<
typename TPixel,
unsigned int VDimension = 2,
66 typename TAllocator = NeighborhoodAllocator< TPixel > >
96 Superclass::operator=(other);
108 m_Variance = variance;
117 if ( max_error >= 1 || max_error <= 0 )
119 itkExceptionMacro(
"Maximum Error Must be in the range [ 0.0 , 1.0 ]");
122 m_MaximumError = max_error;
127 {
return m_Variance; }
134 {
return m_MaximumError; }
141 { m_MaximumKernelWidth = n; }
145 {
return m_MaximumKernelWidth; }
150 os << i <<
"GaussianOperator { this=" <<
this
151 <<
", m_Variance = " << m_Variance
152 <<
", m_MaximumError = " << m_MaximumError
153 <<
"} " << std::endl;
164 double ModifiedBesselI0(
double);
168 double ModifiedBesselI1(
double);
172 double ModifiedBesselI(
int,
double);
180 { this->FillCenteredDirectional(coeff); }
184 double m_Variance{1};
188 double m_MaximumError{.01};
193 unsigned int m_MaximumKernelWidth{30};
198 #ifndef ITK_MANUAL_INSTANTIATION
199 #include "itkGaussianOperator.hxx"
A NeighborhoodOperator whose coefficients are a one dimensional, discrete Gaussian kernel...
void SetVariance(const double &variance)
void SetMaximumKernelWidth(unsigned int n)
unsigned int m_MaximumKernelWidth
void Fill(const CoefficientVector &coeff) override
Virtual class that defines a common interface to all neighborhood operator subtypes.
void PrintSelf(std::ostream &os, Indent i) const override
typename Superclass::CoefficientVector CoefficientVector
Self & operator=(const Self &other)
GaussianOperator(const Self &other)
Control indentation during Print() invocation.
unsigned int GetMaximumKernelWidth() const
void SetMaximumError(const double &max_error)
std::vector< PixelRealType > CoefficientVector