VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
vtkImageBSplineInterpolator Class Reference

perform b-spline interpolation on images More...

#include <vtkImageBSplineInterpolator.h>

Inheritance diagram for vtkImageBSplineInterpolator:
Inheritance graph
[legend]
Collaboration diagram for vtkImageBSplineInterpolator:
Collaboration graph
[legend]

List of all members.

Public Types

typedef
vtkAbstractImageInterpolator 
Superclass

Public Member Functions

virtual int IsA (const char *type)
vtkImageBSplineInterpolatorNewInstance () const
virtual void PrintSelf (ostream &os, vtkIndent indent)
virtual void ComputeSupportSize (const double matrix[16], int support[3])
virtual bool IsSeparable ()
virtual void FreePrecomputedWeights (vtkInterpolationWeights *&weights)
void SetSplineDegree (int degree)
int GetSplineDegree ()
int GetSplineDegreeMinValue ()
int GetSplineDegreeMaxValue ()
virtual void PrecomputeWeightsForExtent (const double matrix[16], const int extent[6], int newExtent[6], vtkInterpolationWeights *&weights)
virtual void PrecomputeWeightsForExtent (const float matrix[16], const int extent[6], int newExtent[6], vtkInterpolationWeights *&weights)

Static Public Member Functions

static
vtkImageBSplineInterpolator
New ()
static int IsTypeOf (const char *type)
static
vtkImageBSplineInterpolator
SafeDownCast (vtkObjectBase *o)

Protected Member Functions

virtual vtkObjectBaseNewInstanceInternal () const
 vtkImageBSplineInterpolator ()
 ~vtkImageBSplineInterpolator ()
virtual void InternalUpdate ()
virtual void InternalDeepCopy (vtkAbstractImageInterpolator *obj)
virtual void BuildKernelLookupTable ()
virtual void FreeKernelLookupTable ()
virtual void GetInterpolationFunc (void(**doublefunc)(vtkInterpolationInfo *, const double[3], double *))
virtual void GetInterpolationFunc (void(**floatfunc)(vtkInterpolationInfo *, const float[3], float *))
virtual void GetRowInterpolationFunc (void(**doublefunc)(vtkInterpolationWeights *, int, int, int, double *, int))
virtual void GetRowInterpolationFunc (void(**floatfunc)(vtkInterpolationWeights *, int, int, int, float *, int))

Protected Attributes

int SplineDegree
floatKernelLookupTable

Detailed Description

perform b-spline interpolation on images

vtkImageBSplineInterpolator can be used to perform b-spline interpolation on images that have been filtered with vtkImageBSplineCoefficients. The b-spline interpolants provide the maximum possible degree of continuity for a given kernel size, but require that the image data be pre-filtered to generate b-spline coefficients before the interpolation is performed. Interpolating data that has not been pre-filtered will give incorrect results.

See also:
vtkImageReslice vtkImageBSplineCoefficients vtkBSplineTransform
Thanks:
This class was written by David Gobbi at the Seaman Family MR Research Centre, Foothills Medical Centre, Calgary, Alberta. DG Gobbi and YP Starreveld, "Uniform B-Splines for the VTK Imaging Pipeline," VTK Journal, 2011, http://hdl.handle.net/10380/3252
Tests:
vtkImageBSplineInterpolator (Tests)

Definition at line 50 of file vtkImageBSplineInterpolator.h.


Member Typedef Documentation

Reimplemented from vtkAbstractImageInterpolator.

Definition at line 55 of file vtkImageBSplineInterpolator.h.


Constructor & Destructor Documentation


Member Function Documentation

Create an object with Debug turned off, modified time initialized to zero, and reference counting on.

Reimplemented from vtkObject.

static int vtkImageBSplineInterpolator::IsTypeOf ( const char *  name) [static]

Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkAbstractImageInterpolator.

virtual int vtkImageBSplineInterpolator::IsA ( const char *  name) [virtual]

Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkAbstractImageInterpolator.

Reimplemented from vtkAbstractImageInterpolator.

virtual vtkObjectBase* vtkImageBSplineInterpolator::NewInstanceInternal ( ) const [protected, virtual]

Reimplemented from vtkAbstractImageInterpolator.

Reimplemented from vtkAbstractImageInterpolator.

virtual void vtkImageBSplineInterpolator::PrintSelf ( ostream &  os,
vtkIndent  indent 
) [virtual]

Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from vtkAbstractImageInterpolator.

Set the degree of the spline polynomial. The default value is 3, and the maximum is 9. The data must be pre-filtered for the same degree of polynomial with vtkImageBSplineCoefficients.

Set the degree of the spline polynomial. The default value is 3, and the maximum is 9. The data must be pre-filtered for the same degree of polynomial with vtkImageBSplineCoefficients.

Definition at line 63 of file vtkImageBSplineInterpolator.h.

Set the degree of the spline polynomial. The default value is 3, and the maximum is 9. The data must be pre-filtered for the same degree of polynomial with vtkImageBSplineCoefficients.

Definition at line 64 of file vtkImageBSplineInterpolator.h.

Set the degree of the spline polynomial. The default value is 3, and the maximum is 9. The data must be pre-filtered for the same degree of polynomial with vtkImageBSplineCoefficients.

Definition at line 65 of file vtkImageBSplineInterpolator.h.

virtual void vtkImageBSplineInterpolator::ComputeSupportSize ( const double  matrix[16],
int  support[3] 
) [virtual]

Get the support size for use in computing update extents. If the data will be sampled on a regular grid, then pass a matrix describing the structured coordinate transformation between the output and the input. Otherwise, pass NULL as the matrix to retrieve the full kernel size.

Implements vtkAbstractImageInterpolator.

virtual bool vtkImageBSplineInterpolator::IsSeparable ( ) [virtual]

Returns true if the interpolator supports weight precomputation. This will always return true for this interpolator.

Implements vtkAbstractImageInterpolator.

virtual void vtkImageBSplineInterpolator::PrecomputeWeightsForExtent ( const double  matrix[16],
const int  extent[6],
int  newExtent[6],
vtkInterpolationWeights *&  weights 
) [virtual]

If the data is going to be sampled on a regular grid, then the interpolation weights can be precomputed. A matrix must be supplied that provides a transformation between the provided extent and the structured coordinates of the input. This matrix must perform only permutations, scales, and translation, i.e. each of the three columns must have only one non-zero value. A new extent is provided for out-of-bounds checks. THIS METHOD IS THREAD SAFE.

Reimplemented from vtkAbstractImageInterpolator.

virtual void vtkImageBSplineInterpolator::PrecomputeWeightsForExtent ( const float  matrix[16],
const int  extent[6],
int  newExtent[6],
vtkInterpolationWeights *&  weights 
) [virtual]

If the data is going to be sampled on a regular grid, then the interpolation weights can be precomputed. A matrix must be supplied that provides a transformation between the provided extent and the structured coordinates of the input. This matrix must perform only permutations, scales, and translation, i.e. each of the three columns must have only one non-zero value. A new extent is provided for out-of-bounds checks. THIS METHOD IS THREAD SAFE.

Reimplemented from vtkAbstractImageInterpolator.

Free the precomputed weights. THIS METHOD IS THREAD SAFE.

Reimplemented from vtkAbstractImageInterpolator.

virtual void vtkImageBSplineInterpolator::InternalUpdate ( ) [protected, virtual]

Update the interpolator.

Implements vtkAbstractImageInterpolator.

Copy the interpolator.

Implements vtkAbstractImageInterpolator.

virtual void vtkImageBSplineInterpolator::GetInterpolationFunc ( void(**)(vtkInterpolationInfo *, const double[3], double *)  doublefunc) [protected, virtual]

Get the interpolation functions.

Reimplemented from vtkAbstractImageInterpolator.

virtual void vtkImageBSplineInterpolator::GetInterpolationFunc ( void(**)(vtkInterpolationInfo *, const float[3], float *)  floatfunc) [protected, virtual]

Get the interpolation functions.

Reimplemented from vtkAbstractImageInterpolator.

virtual void vtkImageBSplineInterpolator::GetRowInterpolationFunc ( void(**)(vtkInterpolationWeights *, int, int, int, double *, int doublefunc) [protected, virtual]

Get the row interpolation functions.

Reimplemented from vtkAbstractImageInterpolator.

virtual void vtkImageBSplineInterpolator::GetRowInterpolationFunc ( void(**)(vtkInterpolationWeights *, int, int, int, float *, int floatfunc) [protected, virtual]

Get the row interpolation functions.

Reimplemented from vtkAbstractImageInterpolator.

virtual void vtkImageBSplineInterpolator::BuildKernelLookupTable ( ) [protected, virtual]

Build the lookup tables used for the interpolation.

virtual void vtkImageBSplineInterpolator::FreeKernelLookupTable ( ) [protected, virtual]

Free the kernel lookup tables.


Member Data Documentation

Definition at line 134 of file vtkImageBSplineInterpolator.h.

Definition at line 135 of file vtkImageBSplineInterpolator.h.


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