34 #ifndef AIMS_SIGNALFILTER_SPLINEFILTER_H
35 #define AIMS_SIGNALFILTER_SPLINEFILTER_H
137 unsigned order = 3 );
139 unsigned order = 3 );
182 template <
typename OUTP,
typename INP>
234 class InverseSmoothingSplineFilter:
public IIRFilterBase
243 InverseSmoothingSplineFilter(
float lambda,
unsigned n = N );
244 InverseSmoothingSplineFilter(
const InverseSmoothingSplineFilter & other );
245 virtual ~InverseSmoothingSplineFilter();
246 InverseSmoothingSplineFilter & operator=(
const InverseSmoothingSplineFilter & other );
262 const unsigned & order()
const;
264 const float & lambda()
const;
268 void setOrder(
unsigned n );
272 void setLambda(
float l );
283 enum FilterType { Interpolation, SymRealPole, SymComplexPole };
288 CausalAllPoleIIRFilter _causal;
289 AntiCausalAllPoleIIRFilter _anticausal;
290 SymAllPoleIIRFilter _symmetric;
291 InverseBSplineFilter _interpolation;
294 template <
unsigned O>
friend class InverseSmoothingSplineFilter;
This filter uses a convolution with Spline basis functions.
unsigned order() const
Parameters.
carto::VolumeRef< OUTP > execute(const carto::VolumeRef< INP > &in, carto::VolumeRef< OUTP > &out) const
Execution.
Point4df scale() const
Get spline scaling coefficient.
DirectBSplineFilter(const DirectBSplineFilter &other)
void setNormalize(const bool &normalize=true)
Set normalization mode.
virtual ~DirectBSplineFilter()
void setScale(const float &scale)
Set scaling coefficient Updates underlyong basis functions.
void setOrder(const unsigned &order)
Set spline order Updates underlyong basis functions.
DirectBSplineFilter(float scale=1., bool normalize=false, unsigned order=3)
Constructor / Copy.
DirectBSplineFilter & operator=(const DirectBSplineFilter &other)
bool normalize() const
Get normalization mode.
void setScale(const Point4df &scale)
Set scaling coefficient Updates underlyong basis functions.
DirectBSplineFilter(const Point4df &scale, bool normalize=false, unsigned order=3)
This filter uses an inverse B-Spline convolution function to transform a discrete signal to its splin...
InverseBSplineFilter(const InverseBSplineFilter &other)
The internal order of the copied filter is kept, meaning that the built filter's order might differ f...
const unsigned & order() const
Parameters.
virtual ~InverseBSplineFilter()
InverseBSplineFilter(unsigned order=3)
Constructor / Copy.
void setOrder(const unsigned &order)
Set spline order The gain and poles of the underlying IIR filter will be updated accordingly.
InverseBSplineFilter & operator=(const InverseBSplineFilter &other)
The internal order of the copied filter is kept, meaning that the built filter's order might differ f...
Symmetric, all-pole, infinite impulse response Filter.