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 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.
vtkImageBSplineInternals::vtkImageBSplineInternals | ( | ) | [inline, protected] |
Definition at line 79 of file vtkImageBSplineInternals.h.
vtkImageBSplineInternals::~vtkImageBSplineInternals | ( | ) | [inline, protected] |
Definition at line 80 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] |