29 #include "Convolution.hh"
31 #define D_GAUSS_FAST_GREY 0x01
50 template <
class InputStorageType,
class OutputStorageType>
52 :
public Convolution<InputStorageType, OutputStorageType>
78 bool ResetROI =
false);
99 float threshold = 0.0);
108 float threshold = 0.0);
136 const InputStorageType& thresh);
162 inline void SetSigma(
const double si) { _GaussSigma=si; }
164 inline double GetSigma()
const {
return _GaussSigma; }
166 inline void SetRatio(
const double ratio) { _GaussRatio=ratio; }
168 inline double GetRatio()
const {
return _GaussRatio; }
176 _GaussSigma = sqrt((
double)hws*(
double)hws/(-2.0*log(_GaussRatio)));
178 _GaussRatio = 0.5*(exp(((
double)hws*(
double)hws)
179 /(-2.0*(_GaussSigma)*(_GaussSigma)))+
180 exp(((
double)(hws+1.0)*(
double)(hws+1.0))
181 /(-2.0*(_GaussSigma)*(_GaussSigma)))) ;
203 void _CalculateKernels(
double Sigma,
double Ratio);
220 #endif // __Gauss_hh__
Gauss< InputStorageType, OutputStorageType > * _GaussIO
generic convolution class.
void SetHalfWinSize(const int hws, bool AdjustSigma=true)
define the half win size of the kernel, if AdjustSigma is true sigma is computed according to the cut...
double _GaussRatio
minimum ratio of 1D kernel center and border, ignore smaller entries
smoothing with gaussian kernel
virtual Gauss< InputStorageType, OutputStorageType > * Clone() const
void SetSigma(const double si)
Gauss< OutputStorageType, OutputStorageType > * _GaussOO
to allow for iterated gauss convolution saving the intermediate image we need a different instance...
void SetRatio(const double ratio)