18 #ifndef itkGaborKernelFunction_h
19 #define itkGaborKernelFunction_h
50 template <
typename TRealValueType>
69 Evaluate(
const TRealValueType & u)
const override
71 TRealValueType parameter = itk::Math::sqr(u / this->
m_Sigma);
72 TRealValueType envelope = std::exp(static_cast<TRealValueType>(-0.5) * parameter);
73 TRealValueType phase =
79 return envelope * std::sin(phase);
83 return envelope * std::cos(phase);
88 itkSetMacro(Sigma, TRealValueType);
89 itkGetConstMacro(Sigma, TRealValueType);
93 itkSetMacro(Frequency, TRealValueType);
94 itkGetConstMacro(Frequency, TRealValueType);
98 itkSetMacro(PhaseOffset, TRealValueType);
99 itkGetConstMacro(PhaseOffset, TRealValueType);
104 itkSetMacro(CalculateImaginaryPart,
bool);
105 itkGetConstMacro(CalculateImaginaryPart,
bool);
106 itkBooleanMacro(CalculateImaginaryPart);
114 this->
m_Frequency = static_cast<TRealValueType>(0.4);
123 os << indent <<
"Sigma: " << this->
GetSigma() << std::endl;
124 os << indent <<
"Frequency: " << this->
GetFrequency() << std::endl;
125 os << indent <<
"PhaseOffset: " << this->
GetPhaseOffset() << std::endl;