SLIP  1.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Namespaces
bspline_interpolation.hpp File Reference

Provides some bspline interpolation algorithms. More...

#include <cmath>
#include <limits>
#include "DPoint2d.hpp"
#include "DPoint3d.hpp"
#include "Array.hpp"
#include "Array2d.hpp"
#include "Array3d.hpp"
#include "macros.hpp"
#include "arithmetic_op.hpp"
#include "dynamic.hpp"
Include dependency graph for bspline_interpolation.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 slipalgo
 

Functions

BSpline interpolation
template<class Array >
void slipalgo::BSplinePoles (const std::size_t degree, Array &Poles)
 BSpline Poles computations based on http://bigwww.epfl.ch/thevenaz/interpolation/. More...
 
template<typename InputIterator >
double slipalgo::BSplineInitialCausalCoefficient (InputIterator infirst, InputIterator inlast, double z, double Tolerance)
 BSpline computation of causal coefficients based on http://bigwww.epfl.ch/thevenaz/interpolation/. More...
 
template<typename InputIterator >
double slipalgo::BSplineInitialAntiCausalCoefficient (InputIterator outlast, const double z)
 BSpline computation of anticausal coefficients based on http://bigwww.epfl.ch/thevenaz/interpolation/. More...
 
template<typename InputIterator , typename OutputIterator , typename InputIterator2 >
void slipalgo::BSplineComputeInterpolationCoefficients (InputIterator infirst, InputIterator inlast, OutputIterator outfirst, InputIterator2 Poles_first, InputIterator2 Poles_last, double Tolerance=std::numeric_limits< double >::epsilon())
 BSpline computation of coefficients based on http://bigwww.epfl.ch/thevenaz/interpolation/. More...
 
template<typename InputIterator , typename OutputIterator , class Array >
void slipalgo::BSplineComputeInterpolationCoefficients (InputIterator infirst, InputIterator inlast, OutputIterator outfirst, const Array &Poles, double Tolerance)
 BSpline computation of coefficients based on http://bigwww.epfl.ch/thevenaz/interpolation/. More...
 
template<typename RandomAccessIterator >
void slipalgo::BSplineComputeInterpolationIndexes (const std::size_t spline_degree, double x, RandomAccessIterator index_first, RandomAccessIterator index_last)
 Computes the bspline interpolations indices. based on http://bigwww.epfl.ch/thevenaz/interpolation/. More...
 
template<typename RandomAccessIterator , typename Array >
void slipalgo::BSplineComputeInterpolationWeights (const std::size_t spline_degree, double x, RandomAccessIterator index_first, RandomAccessIterator index_last, Array &Weights)
 Computes the bspline interpolations weights. based on http://bigwww.epfl.ch/thevenaz/interpolation/. More...
 
template<class RandomAccessIterator >
double slipalgo::BSplineInterpolatedValue (RandomAccessIterator coef_first, RandomAccessIterator coef_last, double x, std::size_t SplineDegree)
 BSpline interpolation from the interpolation coefficients. based on http://bigwww.epfl.ch/thevenaz/interpolation/. More...
 
template<typename RandomAccessIterator2d1 , typename RandomAccessIterator2d2 >
void slipalgo::BSplineSamplesToCoefficients2d (RandomAccessIterator2d1 in_up, RandomAccessIterator2d1 in_bot, const std::size_t degree, RandomAccessIterator2d2 out_up, RandomAccessIterator2d2 out_bot, const double tolerance=std::numeric_limits< double >::epsilon())
 Convert a 2d samples range to a 2d bspline coefficients range. More...
 
template<class Matrix1 , class Matrix2 >
void slipalgo::BSplineSamplesToCoefficients (const std::size_t degree, const Matrix1 &input, Matrix2 &output)
 BSpline computation of coefficients for 2D container based on http://bigwww.epfl.ch/thevenaz/interpolation/. More...
 
template<typename RandomAccessIterator3d1 , typename RandomAccessIterator3d2 >
void slipalgo::BSplineSamplesToCoefficients3d (RandomAccessIterator3d1 in_fup, RandomAccessIterator3d1 in_bbot, const std::size_t degree, RandomAccessIterator3d2 out_fup, RandomAccessIterator3d2 out_bbot, const double tolerance=std::numeric_limits< double >::epsilon())
 Convert a 3d samples range to a 3d bspline coefficients range. More...
 
template<typename RandomAccessIterator2d >
double slipalgo::BSplineInterpolatedValue (RandomAccessIterator2d Bcoeff_up, RandomAccessIterator2d Bcoeff_bot, double x, double y, std::size_t SplineDegree)
 Computes the 2d BSpline interpolation from 2d bspline interpolation coefficients. More...
 
template<class Matrix1 >
double slipalgo::BSplineInterpolatedValue (Matrix1 &Bcoeff, double x, double y, std::size_t SplineDegree)
 Computes the 2d BSpline interpolation from 2d bspline interpolation coefficients. More...
 
template<class Container3d >
double slipalgo::BSplineInterpolatedValue (Container3d &Bcoeff, double x, double y, double z, std::size_t SplineDegree)
 Computes the 3d BSpline interpolation from 3d bspline interpolation coefficients. More...
 
template<typename RandomAccessIterator3d >
double slipalgo::BSplineInterpolatedValue (RandomAccessIterator3d Bcoeff_fup, RandomAccessIterator3d Bcoeff_bbot, double x, double y, double z, std::size_t SplineDegree)
 Computes the 3d BSpline interpolation from 3d bspline interpolation coefficients. More...
 
template<typename RandomAccessIterator1 , typename RandomAccessIterator2 >
void slipalgo::bspline_resampling_1d (RandomAccessIterator1 in_first, RandomAccessIterator1 in_last, const std::size_t spline_degree, RandomAccessIterator2 out_first, RandomAccessIterator2 out_last)
 Resample a range using bspline interpolation. More...
 
template<typename RandomAccessIterator2d1 , typename RandomAccessIterator2d2 >
void slipalgo::bspline_resampling_2d (RandomAccessIterator2d1 in_up, RandomAccessIterator2d1 in_bot, const std::size_t spline_degree, RandomAccessIterator2d2 out_up, RandomAccessIterator2d2 out_bot)
 Resample a 2d range using bspline interpolation. More...
 
template<typename RandomAccessIterator3d1 , typename RandomAccessIterator3d2 >
void slipalgo::bspline_resampling_3d (RandomAccessIterator3d1 in_fup, RandomAccessIterator3d1 in_bbot, const std::size_t spline_degree, RandomAccessIterator3d2 out_fup, RandomAccessIterator3d2 out_bbot)
 Resample a 3d range using bspline interpolation. More...
 
template<class GrayScaleImage >
void slipalgo::BSplineGeometricTransformation (const GrayScaleImage &InputImage, GrayScaleImage &OutputImage, const int SplineDegree=3, const double OriginX=0.0, const double OriginY=0.0, const double Angle=0.0, const double ShiftX=0.0, const double ShiftY=0.0, const bool Masking=true)
 BSpline computation of a geometric transformation. based on http://bigwww.epfl.ch/thevenaz/interpolation/. More...
 

Detailed Description

Provides some bspline interpolation algorithms.

Since
1.2.0

Definition in file bspline_interpolation.hpp.