17 #ifndef __itkGaussianOperator_h
18 #define __itkGaussianOperator_h
59 template<
class TPixel,
unsigned int VDimension=2,
60 class TAllocator = NeighborhoodAllocator<TPixel> >
84 Superclass::operator=(other);
92 void SetVariance(
const double &variance)
94 m_Variance = variance;
101 void SetMaximumError(
const double &max_error)
103 if (max_error >= 1 || max_error <= 0)
105 itkExceptionMacro(
"Maximum Error Must be in the range [ 0.0 , 1.0 ]");
108 m_MaximumError = max_error;
113 {
return m_Variance; }
119 double GetMaximumError()
120 {
return m_MaximumError; }
126 void SetMaximumKernelWidth(
unsigned int n )
127 { m_MaximumKernelWidth = n; }
130 unsigned int GetMaximumKernelWidth()
const
131 {
return m_MaximumKernelWidth; }
134 virtual void PrintSelf(std::ostream &os,
Indent i)
const
136 os << i <<
"GaussianOperator { this=" <<
this
137 <<
", m_Variance = " << m_Variance
138 <<
", m_MaximumError = " << m_MaximumError
139 <<
"} " << std::endl;
147 double ModifiedBesselI0(
double);
151 double ModifiedBesselI1(
double);
155 double ModifiedBesselI(
int,
double);
162 { this->FillCenteredDirectional(coeff); }
178 const char *GetNameOfClass()
179 {
return "itkGaussianOperator"; }
186 #define ITK_TEMPLATE_GaussianOperator(_, EXPORT, x, y) namespace itk { \
187 _(2(class EXPORT GaussianOperator< ITK_TEMPLATE_2 x >)) \
188 namespace Templates { typedef GaussianOperator< ITK_TEMPLATE_2 x > \
189 GaussianOperator##y; } \
192 #if ITK_TEMPLATE_EXPLICIT
193 # include "Templates/itkGaussianOperator+-.h"