VTK  9.3.20240327
Static Public Member Functions | List of all members
vtkImageBSplineInternals Class Reference

BSpline code from P. More...

#include <vtkImageBSplineInternals.h>

Static Public Member Functions

static int GetPoleValues (double poles[4], long &numPoles, long degree)
 Internal method. More...
 
static void ConvertToInterpolationCoefficients (double data[], long size, vtkImageBorderMode border, double poles[4], long numPoles, double tol)
 Internal method. More...
 
static int GetInterpolationWeights (double weights[10], double w, long degree)
 Internal method. More...
 
static int GetInterpolationWeights (float weights[10], double w, long degree)
 Internal method. More...
 
static int InterpolatedValue (const double *coeffs, double *value, long width, long height, long slices, long depth, double x, double y, double z, long degree, vtkImageBorderMode border)
 Internal method. More...
 
static int InterpolatedValue (const float *coeffs, float *value, long width, long height, long slices, long depth, double x, double y, double z, long degree, vtkImageBorderMode border)
 Internal method. More...
 
 vtkImageBSplineInternals ()=default
 Internal method. More...
 
 ~vtkImageBSplineInternals ()=default
 Internal method. More...
 
static double InitialCausalCoefficient (double data[], long size, vtkImageBorderMode border, double pole, double tol)
 Internal method. More...
 
static double InitialAntiCausalCoefficient (double data[], long size, vtkImageBorderMode border, double pole, double tol)
 Internal method. More...
 

Detailed Description

BSpline code from P.

Thevenaz

vtkImageBSplineInternals provides code for image interpolation with b-splines of various degrees. This code computes the coefficients 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 32 of file vtkImageBSplineInternals.h.

Constructor & Destructor Documentation

◆ vtkImageBSplineInternals()

vtkImageBSplineInternals::vtkImageBSplineInternals ( )
protecteddefault

Internal method.

Interpolate a value from the supplied 3D array of coefficients with dimensions width x height x slices.

◆ ~vtkImageBSplineInternals()

vtkImageBSplineInternals::~vtkImageBSplineInternals ( )
protecteddefault

Internal method.

Interpolate a value from the supplied 3D array of coefficients with dimensions width x height x slices.

Member Function Documentation

◆ GetPoleValues()

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.

◆ ConvertToInterpolationCoefficients()

static void vtkImageBSplineInternals::ConvertToInterpolationCoefficients ( double  data[],
long  size,
vtkImageBorderMode  border,
double  poles[4],
long  numPoles,
double  tol 
)
static

Internal method.

Compute the coefficients for one row of data.

◆ GetInterpolationWeights() [1/2]

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.

◆ GetInterpolationWeights() [2/2]

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.

◆ InterpolatedValue() [1/2]

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,
vtkImageBorderMode  border 
)
static

Internal method.

Interpolate a value from the supplied 3D array of coefficients with dimensions width x height x slices.

◆ InterpolatedValue() [2/2]

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,
vtkImageBorderMode  border 
)
static

Internal method.

Interpolate a value from the supplied 3D array of coefficients with dimensions width x height x slices.

◆ InitialCausalCoefficient()

static double vtkImageBSplineInternals::InitialCausalCoefficient ( double  data[],
long  size,
vtkImageBorderMode  border,
double  pole,
double  tol 
)
staticprotected

Internal method.

Interpolate a value from the supplied 3D array of coefficients with dimensions width x height x slices.

◆ InitialAntiCausalCoefficient()

static double vtkImageBSplineInternals::InitialAntiCausalCoefficient ( double  data[],
long  size,
vtkImageBorderMode  border,
double  pole,
double  tol 
)
staticprotected

Internal method.

Interpolate a value from the supplied 3D array of coefficients with dimensions width x height x slices.


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