VTK  9.2.6
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.
static void ConvertToInterpolationCoefficients (double data[], long size, vtkImageBorderMode border, double poles[4], long numPoles, double tol)
 Internal method.
static int GetInterpolationWeights (double weights[10], double w, long degree)
 Internal method.
static int GetInterpolationWeights (float weights[10], double w, long degree)
 Internal method.
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.
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.
 vtkImageBSplineInternals ()=default
 Internal method.
 ~vtkImageBSplineInternals ()=default
 Internal method.
static double InitialCausalCoefficient (double data[], long size, vtkImageBorderMode border, double pole, double tol)
 Internal method.
static double InitialAntiCausalCoefficient (double data[], long size, vtkImageBorderMode border, double pole, double tol)
 Internal method.

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 43 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()

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()

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]

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]

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]

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]

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()

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()

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: