SLIMMER
|
Class for Interpolation of Values on a regular 2D or 3D grid. More...
#include <SimpleInterp.h>
Public Member Functions | |
template<typename TT , typename TIN > | |
TOUT | NN3D (const TT &im1, const SimpleBaseTVec< float > &X, const TIN &PadVal, const int &frame=0) const |
3D Nearest Neighbour Interpolation Function | |
template<typename TT , typename TIN > | |
TOUT | Linear3D (const TT &im1, const SimpleBaseTVec< float > &X, const TIN &PadVal, const int &frame=0) const |
3D Linear Interpolation Function | |
template<typename TT , typename TIN > | |
TOUT | Linear3Dpad (const TT &im1, const SimpleBaseTVec< float > &X, const TIN &PadVal, const int &frame=0) const |
3D Linear Interpolation Function | |
template<typename TT , typename TIN > | |
void | Linear3D (const TT &im1, const SimpleBaseTVec< float > &X, TOUT &val, SimpleTVec< TOUT, 3 > &der, const TIN &PadVal, const int &frame=0) const |
3D Linear Interpolation Function with gradient | |
template<typename TT , typename TIN > | |
TOUT | Cubic3D (const TT &im1, const SimpleBaseTVec< float > &X, const TIN &PadVal, const int frame=0) const |
3D Cubic Interpolation Function | |
template<typename TT , typename TIN > | |
TOUT | Cubic3Dpad (const TT &im1, const SimpleBaseTVec< float > &X, const TIN &PadVal, const int frame=0) const |
3D Cubic Interpolation Function checking for padding values | |
template<typename TT , typename TIN > | |
TOUT | CBS3D (const TT &im1, const SimpleBaseTVec< float > &X, const TIN &PadVal, const int &frame=0) const |
3D Cubic BSpline Interpolation Function | |
template<typename TT , typename TIN > | |
TOUT | Interp3D_Type (int InterpType, const TT &im1, const SimpleBaseTVec< float > &X, const TIN &PadVal, const int &frame=0) const |
Wrapper for 3D Interpolation Type Selection. | |
template<typename TT , typename TIN > | |
void | Interp3D_Type (int InterpType, const TT &im1, const SimpleBaseTVec< float > &X, TOUT &val, SimpleTVec< TOUT, 3 > &der, const TIN &PadVal, const int &frame=0) const |
Wrapper for 3D Interpolation Type Selection. | |
template<typename TT , typename TIN > | |
TOUT | NN2D (const TT &im1, const SimpleBaseTVec< float > &X, const TIN &PadVal, const int frame=0, const int slice=0) const |
2D Nearest Neighbour Interpolation Function | |
template<typename TT , typename TIN > | |
TOUT | Linear2D (const TT &im1, const SimpleBaseTVec< float > &X, const TIN &PadVal, const int &frame=0, const int &slice=0) const |
2D Linear Interpolation Function | |
template<typename TT , typename TIN > | |
TOUT | Cubic2D (const TT &im1, const SimpleBaseTVec< float > &X, const TIN &PadVal, const int frame=0, const int slice=0) const |
2D Cubic Interpolation Function | |
template<typename TT , typename TIN > | |
TOUT | Interp2D_Type (int InterpType, const TT &im1, const SimpleBaseTVec< float > &X, const TIN &PadVal, const int &frame=0) const |
template<typename TT , typename TIN > | |
SimpleTVec< TOUT, 3 > | CubicGrad3D (const TT &im1, const SimpleBaseTVec< float > &X, const float &step, const TIN &PadVal, const int frame=0) const |
3D Cubic Interpolation Gradient Function | |
template<typename TT , typename TIN > | |
SimpleTVec< TOUT, 3 > | CBSGrad3D (const TT &im1, const SimpleBaseTVec< float > &X, const TIN &PadVal, const int &frame=0) const |
Cubic B-Spline Interpolation Gradient. | |
template<> | |
const char | _versionID [] |
Static Public Attributes | |
static const char | _versionID [] |
Class for Interpolation of Values on a regular 2D or 3D grid.
Functions Written to Operate on abstract data Type TT having nVox() function to define dimensions and [] to access elements
class template type TOUT defines output type for interpolation calculation
Definitions for Specifiying Interpolation Type to be used:
NN3D() and NN2D(): Nearest Neighbour 3D and 2D interpolation
Linear3D() and Linear2D(): Linear 3D and 2D interpolation
Cubic3D() and Cubic2D(): Cubic 3D and 2D interpolation
Linear3Dpad() and Cubic3Dpad() are pad-preserving versions (have slower voxel tests)
CBS3D() and CBS2D(): Cubic BSpline 3D and 2D interpolation
Interp3D_Type() and Interp2D_Type(): Wrappers calling a defineable interpolation type
Member function calling notes:
Location Vector X has variable length LEN but only first 2 or 3 used
This is to allow calling with result of a homogeneous coordinate transform which is padded to length 4.
note: No checking for calling with length less than required!!!
parameter 'frame' for 3D and 2D specifies which frame of a 4D dataset to interpolate
parameter 'slice' for 2D specifies which slice of a 3D/4D dataset to interpolate
PadVal type: this determines type of INPUT data type, i.e. need to cast 0 to short(0) or 0.0 to float(0.0) when calling