aimsalgo  5.1.2
Neuroimaging image processing
aims::InverseBSplineFilter Class Reference

This filter uses an inverse B-Spline convolution function to transform a discrete signal to its spline representation. More...

#include <aims/signalfilter/splinefilter.h>

Inheritance diagram for aims::InverseBSplineFilter:
Collaboration diagram for aims::InverseBSplineFilter:

Public Member Functions

 InverseBSplineFilter (unsigned order=3)
 Constructor / Copy. More...
 
 InverseBSplineFilter (const InverseBSplineFilter &other)
 The internal order of the copied filter is kept, meaning that the built filter's order might differ from N and ORDER. More...
 
virtual ~InverseBSplineFilter ()
 
InverseBSplineFilteroperator= (const InverseBSplineFilter &other)
 The internal order of the copied filter is kept, meaning that the built filter's order might differ from N and ORDER. More...
 
const unsigned & order () const
 Parameters. More...
 
void setOrder (const unsigned &order)
 Set spline order The gain and poles of the underlying IIR filter will be updated accordingly. More...
 
- Public Member Functions inherited from aims::SymAllPoleIIRFilter
 SymAllPoleIIRFilter (const double gain=0., const std::vector< double > &poles=std::vector< double >())
 Constructor / Destructor / Copy. More...
 
 SymAllPoleIIRFilter (const SymAllPoleIIRFilter &other)
 
virtual ~SymAllPoleIIRFilter ()
 
SymAllPoleIIRFilteroperator= (const SymAllPoleIIRFilter &other)
 
virtual void filter1d (const carto::VolumeRef< double > in, carto::VolumeRef< double > out, int dir=-1) const
 Execution. More...
 
const double & gain () const
 Parameters. More...
 
const std::vector< double > & poles () const
 
void setPoles (const std::vector< double > &poles)
 
void addPole (const double &pole)
 
void setGain (const double &gain)
 Relative to Unser & al, gain = c0. More...
 
void setModePreciseGain (bool precise=true)
 If this mode is activated, provided gain should be c * prod(-poles). More...
 
- Public Member Functions inherited from aims::IIRFilterBase
 IIRFilterBase ()
 Constructor / Destructor / Copy. More...
 
 IIRFilterBase (const IIRFilterBase &other)
 
virtual ~IIRFilterBase ()
 
IIRFilterBaseoperator= (const IIRFilterBase &other)
 
template<typename T >
carto::VolumeRef< double > execute (const carto::VolumeRef< T > &in) const
 Execution. More...
 
carto::VolumeRef< double > execute (carto::VolumeRef< double > &in, bool inplace=false) const
 
virtual const std::vector< bool > & directions () const
 Parameters. More...
 
virtual void setDirections (const std::vector< bool > &dir)
 
virtual void setDirections (bool dirx, bool diry, bool dirz, bool dirt)
 
virtual void setDirectionX (bool dirx)
 default: true More...
 
virtual void setDirectionY (bool diry)
 default: true More...
 
virtual void setDirectionZ (bool dirz)
 default: true More...
 
virtual void setDirectionT (bool dirt)
 default: false More...
 
virtual const FilterType::Boundaryboundary () const
 Because the filter is infinite, the signal must be extended outisde the image domain. More...
 
virtual void setBoundary (const FilterType::Boundary &boundary)
 
virtual void setVerbose (int verbose=1)
 Verbosity level. More...
 
virtual void setQuiet ()
 Set verbosity level to 0 -> Remove all possible traces. More...
 

Protected Member Functions

void setPoles ()
 Helpers. More...
 
- Protected Member Functions inherited from aims::SymAllPoleIIRFilter
void computeK0 ()
 Helpers. More...
 
void computePreciseGain ()
 
- Protected Member Functions inherited from aims::IIRFilterBase
virtual void filter (carto::VolumeRef< double > vol) const
 Helpers. More...
 
virtual void filter1d (carto::VolumeRef< double > vol, int dir=-1, carto::VolumeRef< double > tmp=carto::VolumeRef< double >((carto::Volume< double > *) 0)) const
 redirection for in place fitlering More...
 
virtual double & at (carto::VolumeRef< double > &vector, long k, int dir) const
 Fast access : k must be in [0, size-1]. More...
 
virtual const double & at (const carto::VolumeRef< double > &vector, long k, int dir) const
 Fast access : k must be in [0, size-1]. More...
 
virtual double at (const carto::VolumeRef< double > &vector, long k, int dir, long fullsize, int binf) const
 Mirror access : k can be outside [0, size - 1]. More...
 
virtual long mirrorCoeff (long i, long size) const
 If i is outside [0, size-1], it is mirrored to fall inside. More...
 
virtual long selectCoeff (long i, long fullsize, int binf) const
 If i is outside [binf, fullsize-1], it is mirrored to fall inside. More...
 
virtual long computeK0 (double pole, double tolerance=-1.) const
 compute K0 so that pole^K0 < precision More...
 

Protected Attributes

unsigned _order
 
- Protected Attributes inherited from aims::SymAllPoleIIRFilter
std::vector< double > _poles
 
std::vector< long > _k0
 
double _gain
 
double _precisegain
 
bool _precise
 
- Protected Attributes inherited from aims::IIRFilterBase
int _verbose
 
std::vector< bool > _dir
 
FilterType::Boundary _boundary
 
FilterType::CopyType _copy
 

Detailed Description

This filter uses an inverse B-Spline convolution function to transform a discrete signal to its spline representation.

This is the underlying process used for spline interpolation.

It actually performs a direct spline transformation (image space -> spline space)

See: Unser, Aldroubi & Eden, "B-Spline Signal Processing" in IEEE Transactions on Signal Processing (1993)

Definition at line 61 of file splinefilter.h.

Constructor & Destructor Documentation

◆ InverseBSplineFilter() [1/2]

aims::InverseBSplineFilter::InverseBSplineFilter ( unsigned  order = 3)

Constructor / Copy.

Even though the spline order is templated, it can be overriden at run time.

◆ InverseBSplineFilter() [2/2]

aims::InverseBSplineFilter::InverseBSplineFilter ( const InverseBSplineFilter other)

The internal order of the copied filter is kept, meaning that the built filter's order might differ from N and ORDER.

◆ ~InverseBSplineFilter()

virtual aims::InverseBSplineFilter::~InverseBSplineFilter ( )
virtual

Member Function Documentation

◆ operator=()

InverseBSplineFilter& aims::InverseBSplineFilter::operator= ( const InverseBSplineFilter other)

The internal order of the copied filter is kept, meaning that the built filter's order might differ from N and ORDER.

◆ order()

const unsigned& aims::InverseBSplineFilter::order ( ) const

Parameters.

Get spline order

◆ setOrder()

void aims::InverseBSplineFilter::setOrder ( const unsigned &  order)

Set spline order The gain and poles of the underlying IIR filter will be updated accordingly.

◆ setPoles()

void aims::InverseBSplineFilter::setPoles ( )
protected

Helpers.

Set the poles of the underlying IIR filter that corresponds to the chosen order.

Member Data Documentation

◆ _order

unsigned aims::InverseBSplineFilter::_order
protected

Definition at line 102 of file splinefilter.h.


The documentation for this class was generated from the following file: