VTK
Static Public Member Functions | Protected Member Functions | Static Protected Member Functions
vtkImageBSplineInternals Class Reference

BSpline code from P. Thevenaz. More...

#include <vtkImageBSplineInternals.h>

List of all members.

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)

Detailed Description

BSpline code from P. Thevenaz.

vtkImageBSplineInternals provides code for image interpolation with b-splines of various degrees. This code computes the coefficents from the image, and computes the weights for the b-spline 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):739-758, 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 B-spline Interpolation," The Computer Journal, doi: 10.1093/comjnl/bxq086, 2010.

Definition at line 41 of file vtkImageBSplineInternals.h.


Constructor & Destructor Documentation

Definition at line 79 of file vtkImageBSplineInternals.h.

Definition at line 80 of file vtkImageBSplineInternals.h.


Member Function Documentation

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]

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