VTK

BSpline code from P. Thevenaz. More...
#include <vtkImageBSplineInternals.h>
Static Public Member Functions  
static int  GetPoleValues (double poles[4], long &numPoles, long degree) 
static void  ConvertToInterpolationCoefficients (double data[], long size, long border, double poles[4], long numPoles, double tol) 
static int  GetInterpolationWeights (double weights[10], double w, long degree) 
static int  GetInterpolationWeights (float weights[10], double w, long degree) 
static int  InterpolatedValue (const double *coeffs, double *value, long width, long height, long slices, long depth, double x, double y, double z, long degree, long border) 
static int  InterpolatedValue (const float *coeffs, float *value, long width, long height, long slices, long depth, double x, double y, double z, long degree, long border) 
Protected Member Functions  
vtkImageBSplineInternals ()  
~vtkImageBSplineInternals ()  
Static Protected Member Functions  
static double  InitialCausalCoefficient (double data[], long size, long border, double pole, double tol) 
static double  InitialAntiCausalCoefficient (double data[], long size, long border, double pole, double tol) 
BSpline code from P. Thevenaz.
vtkImageBSplineInternals provides code for image interpolation with bsplines of various degrees. This code computes the coefficents from the image, and computes the weights for the bspline kernels.
This class is based on code provided by Philippe Thevenaz of EPFL, Lausanne, Switzerland. Please acknowledge his contribution by citing the following paper: [1] P. Thevenaz, T. Blu, M. Unser, "Interpolation Revisited," IEEE Transactions on Medical Imaging 19(7):739758, 2000.
The clamped boundary condition (which is the default) is taken from code presented in the following paper: [2] D. Ruijters, P. Thevenaz, "GPU Prefilter for Accurate Cubic Bspline Interpolation," The Computer Journal, doi: 10.1093/comjnl/bxq086, 2010.
Definition at line 40 of file vtkImageBSplineInternals.h.
vtkImageBSplineInternals::vtkImageBSplineInternals  (  )  [inline, protected] 
Definition at line 78 of file vtkImageBSplineInternals.h.
vtkImageBSplineInternals::~vtkImageBSplineInternals  (  )  [inline, protected] 
Definition at line 79 of file vtkImageBSplineInternals.h.
static int vtkImageBSplineInternals::GetPoleValues  (  double  poles[4], 
long &  numPoles,  
long  degree  
)  [static] 
Internal method. Get the poles for spline of given degree. Returns zero if an illegal degree is given (allowed range 2 to 9). The parameter numPoles will be set to a value between 1 and 4.
static void vtkImageBSplineInternals::ConvertToInterpolationCoefficients  (  double  data[], 
long  size,  
long  border,  
double  poles[4],  
long  numPoles,  
double  tol  
)  [static] 
Internal method. Compute the coefficients for one row of data.
static int vtkImageBSplineInternals::GetInterpolationWeights  (  double  weights[10], 
double  w,  
long  degree  
)  [static] 
Internal method. Get interpolation weights for offset w, where w is between 0 and 1. You must provide the degree of the spline.
static int vtkImageBSplineInternals::GetInterpolationWeights  (  float  weights[10], 
double  w,  
long  degree  
)  [static] 
Internal method. Get interpolation weights for offset w, where w is between 0 and 1. You must provide the degree of the spline.
static int vtkImageBSplineInternals::InterpolatedValue  (  const double *  coeffs, 
double *  value,  
long  width,  
long  height,  
long  slices,  
long  depth,  
double  x,  
double  y,  
double  z,  
long  degree,  
long  border  
)  [static] 
Internal method. Interpolate a value from the supplied 3D array of coefficients with dimensions width x height x slices.
static int vtkImageBSplineInternals::InterpolatedValue  (  const float *  coeffs, 
float *  value,  
long  width,  
long  height,  
long  slices,  
long  depth,  
double  x,  
double  y,  
double  z,  
long  degree,  
long  border  
)  [static] 
Internal method. Interpolate a value from the supplied 3D array of coefficients with dimensions width x height x slices.
static double vtkImageBSplineInternals::InitialCausalCoefficient  (  double  data[], 
long  size,  
long  border,  
double  pole,  
double  tol  
)  [static, protected] 
static double vtkImageBSplineInternals::InitialAntiCausalCoefficient  (  double  data[], 
long  size,  
long  border,  
double  pole,  
double  tol  
)  [static, protected] 