#include <BSplineInterpolateImageFunction.h>
Public Member Functions | |
virtual void | BoundingInterval (double, int &, int &) const |
GenericBSplineInterpolateImageFunction (int=3) | |
Constructor. | |
VoxelType | Get (double, double, double=0, double=0) const |
template<class TOtherImage > | |
TOtherImage::VoxelType | Get (const TOtherImage *, double, double, double=0, double=0) const |
VoxelType | Get2D (double, double, double=0, double=0) const |
template<class TOtherImage > | |
TOtherImage::VoxelType | Get2D (const TOtherImage *, double, double, double=0, double=0) const |
VoxelType | Get3D (double, double, double=0, double=0) const |
template<class TOtherImage > | |
TOtherImage::VoxelType | Get3D (const TOtherImage *, double, double, double=0, double=0) const |
VoxelType | Get4D (double, double, double=0, double=0) const |
template<class TOtherImage > | |
TOtherImage::VoxelType | Get4D (const TOtherImage *, double, double, double=0, double=0) const |
virtual VoxelType | GetInside (double, double, double=0, double=0) const |
virtual VoxelType | GetOutside (double, double, double=0, double=0) const |
Evaluate generic image at an arbitrary location (in pixels) | |
VoxelType | GetWithPadding (double, double, double=0, double=0) const |
template<class TOtherImage , class TCoefficient > | |
TCoefficient::VoxelType | GetWithPadding (const TOtherImage *, const TCoefficient *, double, double, double=0, double=0) const |
VoxelType | GetWithPadding2D (double, double, double=0, double=0) const |
template<class TOtherImage , class TCoefficient > | |
TCoefficient::VoxelType | GetWithPadding2D (const TOtherImage *, const TCoefficient *, double, double, double=0, double=0) const |
VoxelType | GetWithPadding3D (double, double, double=0, double=0) const |
template<class TOtherImage , class TCoefficient > | |
TCoefficient::VoxelType | GetWithPadding3D (const TOtherImage *, const TCoefficient *, double, double, double=0, double=0) const |
VoxelType | GetWithPadding4D (double, double, double=0, double=0) const |
template<class TOtherImage , class TCoefficient > | |
TCoefficient::VoxelType | GetWithPadding4D (const TOtherImage *, const TCoefficient *, double, double, double=0, double=0) const |
virtual VoxelType | GetWithPaddingInside (double, double, double=0, double=0) const |
virtual VoxelType | GetWithPaddingOutside (double, double, double=0, double=0) const |
virtual void | Initialize (bool=false) |
Initialize interpolation function. | |
mirtkAttributeMacro (bool, UseInputCoefficients) | |
Input image contains spline coefficients. | |
mirtkAttributeMacro (CoefficientImage, Coefficient) | |
Image of spline coefficients. | |
mirtkComponentMacro (CoefficientExtrapolator, InfiniteCoefficient) | |
Infinite discrete coefficient image obtained by extrapolation. | |
mirtkPublicAttributeMacro (int, SplineDegree) | |
Degree of B-spline. | |
virtual void | Update () |
Update spline coefficients. | |
virtual | ~GenericBSplineInterpolateImageFunction () |
Destructor. | |
Public Member Functions inherited from mirtk::GenericInterpolateImageFunction< TImage > | |
virtual double | EvaluateInside (double, double, double=0, double=0) const |
virtual void | EvaluateInside (double *, double, double, double=0, int=1) const |
virtual void | EvaluateInside (Vector &, double, double, double=0, double=0) const |
virtual double | EvaluateOutside (double, double, double=0, double=0) const |
Evaluate scalar image at an arbitrary location (in pixels) | |
virtual void | EvaluateOutside (double *, double, double, double=0, int=1) const |
Evaluate multi-channel image at an arbitrary location (in pixels) | |
virtual void | EvaluateOutside (Vector &, double, double, double=0, double=0) const |
Evaluate vector image at an arbitrary location (in pixels) | |
virtual double | EvaluateWithPaddingInside (double, double, double=0, double=0) const |
virtual void | EvaluateWithPaddingInside (double *, double, double, double=0, int=1) const |
virtual void | EvaluateWithPaddingInside (Vector &, double, double, double=0, double=0) const |
virtual double | EvaluateWithPaddingOutside (double, double, double=0, double=0) const |
virtual void | EvaluateWithPaddingOutside (double *, double, double, double=0, int=1) const |
virtual void | EvaluateWithPaddingOutside (Vector &, double, double, double=0, double=0) const |
virtual void | Extrapolator (ExtrapolateImageFunction *, bool=false) |
Set extrapolate image function for evaluation outside of image domain. | |
ExtrapolatorType * | Extrapolator () |
const ExtrapolatorType * | Extrapolator () const |
VoxelType | Get (double, double, double=0, double=0) const |
VoxelType | GetWithPadding (double, double, double=0, double=0) const |
virtual void | Input (const BaseImage *) |
Set input image. | |
const ImageType * | Input () const |
Get input image. | |
virtual ExtrapolateImageFunction * | New (enum ExtrapolationMode, const BaseImage *=NULL) |
Construct extrapolator which is compatible with this interpolator. | |
VoxelType | operator() (double, double, double=0, double=0) const |
Evaluate generic image at an arbitrary location (in pixels) | |
virtual | ~GenericInterpolateImageFunction () |
Destructor. | |
Public Member Functions inherited from mirtk::InterpolateImageFunction | |
const ImageAttributes & | Attributes () const |
Lattice attributes. | |
virtual void | BoundingBox (double, double, int &, int &, int &, int &) const |
Returns discrete boundaries of local 2D image region needed for interpolation. | |
virtual void | BoundingBox (double, double, double, int &, int &, int &, int &, int &, int &) const |
Returns discrete boundaries of local 3D image region needed for interpolation. | |
virtual void | BoundingBox (double, double, double, double, int &, int &, int &, int &, int &, int &, int &, int &) const |
Returns discrete boundaries of local 4D image region needed for interpolation. | |
double | Evaluate (double, double, double=0, double=0) const |
double | Evaluate (const Point &, double=0) const |
double | Evaluate (double, double, double=0, double=0) |
void | Evaluate (double *, double, double, double=0, int=1) const |
void | Evaluate (double *, const Point &, int=1) const |
void | Evaluate (Vector &, double, double, double=0, double=0) const |
template<class TVoxel > | |
void | Evaluate (GenericImage< TVoxel > &) const |
Evaluate image function at all locations of the output image. | |
void | EvaluateJacobian (Matrix &, double, double, double=0, double=NaN) const |
virtual void | EvaluateJacobianInside (Matrix &, double, double, double=0, double=NaN) const |
virtual void | EvaluateJacobianOutside (Matrix &, double, double, double=0, double=NaN) const |
void | EvaluateJacobianWithPadding (Matrix &, double, double, double=0, double=NaN) const |
virtual void | EvaluateJacobianWithPaddingInside (Matrix &, double, double, double=0, double=NaN) const |
virtual void | EvaluateJacobianWithPaddingOutside (Matrix &, double, double, double=0, double=NaN) const |
double | EvaluateWithPadding (double, double, double=0, double=0) const |
void | EvaluateWithPadding (double *, double, double, double=0, int=1) const |
void | EvaluateWithPadding (Vector &, double, double, double=0, double=0) const |
enum ExtrapolationMode | ExtrapolationMode () const |
Get extrapolation mode used by this interpolator. | |
ExtrapolateImageFunction * | Extrapolator () |
const ExtrapolateImageFunction * | Extrapolator () const |
void | ImageToWorld (double &, double &) const |
Convert image location (in pixels) to world coordinates (in mm) | |
void | ImageToWorld (double &, double &, double &) const |
Convert image location (in pixels) to world coordinates (in mm) | |
void | ImageToWorld (Point &) const |
Convert image location (in pixels) to world coordinates (in mm) | |
void | ImageToWorld (Vector3 &) const |
Convert image vector (in pixels) to world coordinates (in mm) | |
virtual void | Initialize () |
void | Input (const BaseImage *) |
Set input image. | |
const BaseImage * | Input () const |
Get input image. | |
void | Inside (double &, double &, double &, double &) const |
void | Inside (double &, double &, double &, double &, double &, double &) const |
void | Inside (double &, double &, double &, double &, double &, double &, double &, double &) const |
virtual enum InterpolationMode | InterpolationMode () const =0 |
Get interpolation mode corresponding to this interpolator. | |
bool | IsForeground (double, double) const |
bool | IsForeground (double, double, double) const |
bool | IsForeground (double, double, double, double) const |
bool | IsForeground (const Point &) const |
bool | IsForeground (const Point &, double) const |
bool | IsInside (double, double) const |
bool | IsInside (double, double, double) const |
bool | IsInside (double, double, double, double) const |
bool | IsInside (const Point &) const |
bool | IsInside (const Point &, double) const |
bool | IsOutside (double, double) const |
bool | IsOutside (double, double, double) const |
bool | IsOutside (double, double, double, double) const |
bool | IsOutside (const Point &) const |
bool | IsOutside (const Point &, double) const |
int | T () const |
Image size along t axis. | |
double | TSize () const |
Image spacing along t axis. | |
void | WorldToImage (double &, double &) const |
Convert world coordinates (in mm) to image location (in pixels) | |
void | WorldToImage (double &, double &, double &) const |
Convert world coordinates (in mm) to image location (in pixels) | |
void | WorldToImage (Point &) const |
Convert world coordinates (in mm) to image location (in pixels) | |
void | WorldToImage (Vector3 &) const |
Convert world coordinates vector (in mm) to image vector (in pixels) | |
int | X () const |
Image size along x axis. | |
double | XSize () const |
Image spacing along x axis. | |
int | Y () const |
Image size along y axis. | |
double | YSize () const |
Image spacing along y axis. | |
int | Z () const |
Image size along z axis. | |
double | ZSize () const |
Image spacing along z axis. | |
virtual | ~InterpolateImageFunction () |
Destructor. | |
Public Member Functions inherited from mirtk::ImageFunction | |
virtual | ~ImageFunction () |
Destructor. | |
Public Member Functions inherited from mirtk::Object | |
virtual const char * | NameOfClass () const =0 |
Get name of class, which this object is an instance of. | |
virtual ParameterList | Parameter () const |
Get parameter name/value pairs. | |
bool | Parameter (const ParameterList &) |
Set parameters from name/value pairs. | |
virtual bool | Set (const char *name, const char *value) |
virtual | ~Object () |
Destructor. | |
Additional Inherited Members | |
Static Public Member Functions inherited from mirtk::GenericInterpolateImageFunction< TImage > | |
static GenericInterpolateImageFunction * | New (enum InterpolationMode=Interpolation_Default, const TImage *=NULL) |
Construct interpolator with default infinite extension of input image. | |
static GenericInterpolateImageFunction * | New (enum InterpolationMode, enum ExtrapolationMode, const TImage *=NULL) |
Static Public Member Functions inherited from mirtk::InterpolateImageFunction | |
static InterpolateImageFunction * | New (enum InterpolationMode=Interpolation_Default, const BaseImage *=NULL) |
Construct interpolator with default infinite extension of input image. | |
static InterpolateImageFunction * | New (enum InterpolationMode, enum ExtrapolationMode, const BaseImage *=NULL) |
Static Public Member Functions inherited from mirtk::Object | |
static const char * | NameOfType () |
Get name of this class type. | |
Protected Member Functions inherited from mirtk::GenericInterpolateImageFunction< TImage > | |
GenericInterpolateImageFunction () | |
Default constructor. | |
Protected Member Functions inherited from mirtk::InterpolateImageFunction | |
InterpolateImageFunction () | |
Default constructor. | |
Protected Member Functions inherited from mirtk::ImageFunction | |
ImageFunction () | |
Default constructor. | |
ImageFunction (const ImageFunction &) | |
Copy constructor. | |
Protected Member Functions inherited from mirtk::Object | |
template<typename... Args> | |
void | Throw (ErrorType err, const char *func, Args... args) const |
Static Protected Member Functions inherited from mirtk::Object | |
template<typename... Args> | |
static void | ThrowStatic (ErrorType err, const char *cls, const char *func, Args... args) |
Protected Attributes inherited from mirtk::InterpolateImageFunction | |
ExtrapolateImageFunction * | _InfiniteInput |
bool | _InfiniteInputOwner |
Whether infinite discrete image was instantiated by this image function. | |
double | _x1 |
B-spline interpolation of generic image
This class defines and implements the B-spline interpolation of images. Currently supports B-splines of degree 2 to degree 5. By default splines of degree 3 (cubic) are used. For more details see:
M. Unser, "Splines: A Perfect Fit for Signal and Image Processing," IEEE Signal Processing Magazine, vol. 16, no. 6, pp. 22-38, November 1999.
Definition at line 42 of file BSplineInterpolateImageFunction.h.
|
virtual |
Returns interval of discrete image indices whose values are needed for interpolation of the image value at a given continuous coordinate
Implements mirtk::InterpolateImageFunction.
Definition at line 137 of file BSplineInterpolateImageFunction.hxx.
GenericBSplineInterpolateImageFunction< TImage >::VoxelType mirtk::GenericBSplineInterpolateImageFunction< TImage >::Get | ( | double | x, |
double | y, | ||
double | z = 0 , |
||
double | t = 0 |
||
) | const |
Get value of given image at arbitrary location (in pixels)
This function is used to interpolate the image value at arbitrary locations when no extrapolator was set.
Definition at line 618 of file BSplineInterpolateImageFunction.hxx.
TOtherImage::VoxelType mirtk::GenericBSplineInterpolateImageFunction< TImage >::Get | ( | const TOtherImage * | coeff, |
double | x, | ||
double | y, | ||
double | z = 0 , |
||
double | t = 0 |
||
) | const |
Get value of given image at arbitrary location (in pixels)
If the location is inside the finite domain of the image, an actual image instance can be passed as first argument directly such as an instance of GenericImage. Otherwise, an image function which extends the finite image domain to an infinite lattice is needed, i.e., an instance of a subclass of ExtrapolateImageFunction.
Definition at line 644 of file BSplineInterpolateImageFunction.hxx.
GenericBSplineInterpolateImageFunction< TImage >::VoxelType mirtk::GenericBSplineInterpolateImageFunction< TImage >::Get2D | ( | double | x, |
double | y, | ||
double | z = 0 , |
||
double | t = 0 |
||
) | const |
Get value of given 2D image at arbitrary location (in pixels)
This function is used to interpolate the image value at arbitrary locations when no extrapolator was set.
Definition at line 152 of file BSplineInterpolateImageFunction.hxx.
TOtherImage::VoxelType mirtk::GenericBSplineInterpolateImageFunction< TImage >::Get2D | ( | const TOtherImage * | , |
double | , | ||
double | , | ||
double | = 0 , |
||
double | = 0 |
||
) | const |
Get value of given 2D image at arbitrary location (in pixels)
If the location is inside the finite domain of the image, an actual image instance can be passed as first argument directly such as an instance of GenericImage. Otherwise, an image function which extends the finite image domain to an infinite lattice is needed, i.e., an instance of a subclass of ExtrapolateImageFunction.
GenericBSplineInterpolateImageFunction< TImage >::VoxelType mirtk::GenericBSplineInterpolateImageFunction< TImage >::Get3D | ( | double | x, |
double | y, | ||
double | z = 0 , |
||
double | t = 0 |
||
) | const |
Get value of given 3D image at arbitrary location (in pixels)
This function is used to interpolate the image value at arbitrary locations when no extrapolator was set.
Definition at line 300 of file BSplineInterpolateImageFunction.hxx.
TOtherImage::VoxelType mirtk::GenericBSplineInterpolateImageFunction< TImage >::Get3D | ( | const TOtherImage * | , |
double | , | ||
double | , | ||
double | = 0 , |
||
double | = 0 |
||
) | const |
Get value of given 3D image at arbitrary location (in pixels)
If the location is inside the finite domain of the image, an actual image instance can be passed as first argument directly such as an instance of GenericImage. Otherwise, an image function which extends the finite image domain to an infinite lattice is needed, i.e., an instance of a subclass of ExtrapolateImageFunction.
GenericBSplineInterpolateImageFunction< TImage >::VoxelType mirtk::GenericBSplineInterpolateImageFunction< TImage >::Get4D | ( | double | x, |
double | y, | ||
double | z = 0 , |
||
double | t = 0 |
||
) | const |
Get value of given 4D image at arbitrary location (in pixels)
This function is used to interpolate the image value at arbitrary locations when no extrapolator was set.
Definition at line 459 of file BSplineInterpolateImageFunction.hxx.
TOtherImage::VoxelType mirtk::GenericBSplineInterpolateImageFunction< TImage >::Get4D | ( | const TOtherImage * | , |
double | , | ||
double | , | ||
double | = 0 , |
||
double | = 0 |
||
) | const |
Get value of given 4D image at arbitrary location (in pixels)
If the location is inside the finite domain of the image, an actual image instance can be passed as first argument directly such as an instance of GenericImage. Otherwise, an image function which extends the finite image domain to an infinite lattice is needed, i.e., an instance of a subclass of ExtrapolateImageFunction.
|
virtual |
Evaluate generic image without handling boundary conditions
This version is faster than EvaluateOutside, but is only defined inside the domain for which all image values required for interpolation are defined and thus require no extrapolation of the finite image.
Implements mirtk::GenericInterpolateImageFunction< TImage >.
Reimplemented in mirtk::GenericBSplineInterpolateImageFunction2D< TImage >, mirtk::GenericBSplineInterpolateImageFunction3D< TImage >, mirtk::GenericBSplineInterpolateImageFunction4D< TImage >, mirtk::GenericBSplineInterpolateImageFunction2D< BaseImage >, mirtk::GenericBSplineInterpolateImageFunction3D< BaseImage >, and mirtk::GenericBSplineInterpolateImageFunction4D< BaseImage >.
Definition at line 671 of file BSplineInterpolateImageFunction.hxx.
GenericBSplineInterpolateImageFunction< TImage >::VoxelType mirtk::GenericBSplineInterpolateImageFunction< TImage >::GetWithPadding | ( | double | x, |
double | y, | ||
double | z = 0 , |
||
double | t = 0 |
||
) | const |
Get value of given image at arbitrary location (in pixels)
This function is used to only interpolate foreground image values. If fully outside the foreground region, the _DefaultValue is returned.
Definition at line 631 of file BSplineInterpolateImageFunction.hxx.
TCoefficient::VoxelType mirtk::GenericBSplineInterpolateImageFunction< TImage >::GetWithPadding | ( | const TOtherImage * | image, |
const TCoefficient * | coeff, | ||
double | x, | ||
double | y, | ||
double | z = 0 , |
||
double | t = 0 |
||
) | const |
Get value of given image at arbitrary location (in pixels)
This function is used to only interpolate foreground image values. If fully outside the foreground region, the _DefaultValue is returned.
If the location is inside the finite domain of the image, an actual image instance can be passed as first argument directly such as an instance of GenericImage. Otherwise, an image function which extends the finite image domain to an infinite lattice is needed, i.e., an instance of a subclass of ExtrapolateImageFunction.
Definition at line 657 of file BSplineInterpolateImageFunction.hxx.
GenericBSplineInterpolateImageFunction< TImage >::VoxelType mirtk::GenericBSplineInterpolateImageFunction< TImage >::GetWithPadding2D | ( | double | x, |
double | y, | ||
double | z = 0 , |
||
double | t = 0 |
||
) | const |
Get value of given 2D image at arbitrary location (in pixels)
This function is used to only interpolate foreground image values. If fully outside the foreground region, the _DefaultValue is returned.
Definition at line 186 of file BSplineInterpolateImageFunction.hxx.
TCoefficient::VoxelType mirtk::GenericBSplineInterpolateImageFunction< TImage >::GetWithPadding2D | ( | const TOtherImage * | image, |
const TCoefficient * | coeff, | ||
double | x, | ||
double | y, | ||
double | z = 0 , |
||
double | t = 0 |
||
) | const |
Get value of given 2D image at arbitrary location (in pixels)
This function is used to only interpolate foreground image values. If fully outside the foreground region, the _DefaultValue is returned.
If the location is inside the finite domain of the image, an actual image instance can be passed as first argument directly such as an instance of GenericImage. Otherwise, an image function which extends the finite image domain to an infinite lattice is needed, i.e., an instance of a subclass of ExtrapolateImageFunction.
Definition at line 259 of file BSplineInterpolateImageFunction.hxx.
GenericBSplineInterpolateImageFunction< TImage >::VoxelType mirtk::GenericBSplineInterpolateImageFunction< TImage >::GetWithPadding3D | ( | double | x, |
double | y, | ||
double | z = 0 , |
||
double | t = 0 |
||
) | const |
Get value of given 3D image at arbitrary location (in pixels)
This function is used to only interpolate foreground image values. If fully outside the foreground region, the _DefaultValue is returned.
Definition at line 337 of file BSplineInterpolateImageFunction.hxx.
TCoefficient::VoxelType mirtk::GenericBSplineInterpolateImageFunction< TImage >::GetWithPadding3D | ( | const TOtherImage * | image, |
const TCoefficient * | coeff, | ||
double | x, | ||
double | y, | ||
double | z = 0 , |
||
double | t = 0 |
||
) | const |
Get value of given 3D image at arbitrary location (in pixels)
This function is used to only interpolate foreground image values. If fully outside the foreground region, the _DefaultValue is returned.
If the location is inside the finite domain of the image, an actual image instance can be passed as first argument directly such as an instance of GenericImage. Otherwise, an image function which extends the finite image domain to an infinite lattice is needed, i.e., an instance of a subclass of ExtrapolateImageFunction.
Definition at line 417 of file BSplineInterpolateImageFunction.hxx.
GenericBSplineInterpolateImageFunction< TImage >::VoxelType mirtk::GenericBSplineInterpolateImageFunction< TImage >::GetWithPadding4D | ( | double | x, |
double | y, | ||
double | z = 0 , |
||
double | t = 0 |
||
) | const |
Get value of given 4D image at arbitrary location (in pixels)
This function is used to only interpolate foreground image values. If fully outside the foreground region, the _DefaultValue is returned.
Definition at line 494 of file BSplineInterpolateImageFunction.hxx.
TCoefficient::VoxelType mirtk::GenericBSplineInterpolateImageFunction< TImage >::GetWithPadding4D | ( | const TOtherImage * | image, |
const TCoefficient * | coeff, | ||
double | x, | ||
double | y, | ||
double | z = 0 , |
||
double | t = 0 |
||
) | const |
Get value of given 4D image at arbitrary location (in pixels)
This function is used to only interpolate foreground image values. If fully outside the foreground region, the _DefaultValue is returned.
If the location is inside the finite domain of the image, an actual image instance can be passed as first argument directly such as an instance of GenericImage. Otherwise, an image function which extends the finite image domain to an infinite lattice is needed, i.e., an instance of a subclass of ExtrapolateImageFunction.
Definition at line 574 of file BSplineInterpolateImageFunction.hxx.
|
virtual |
Evaluate generic image without handling boundary conditions
This function is used to only interpolate foreground image values. If fully outside the foreground region, the _DefaultValue is returned.
This version is faster than GetWithPaddingOutside, but is only defined inside the domain for which all image values required for interpolation are defined and thus require no extrapolation of the finite image.
Implements mirtk::GenericInterpolateImageFunction< TImage >.
Reimplemented in mirtk::GenericBSplineInterpolateImageFunction2D< TImage >, mirtk::GenericBSplineInterpolateImageFunction3D< TImage >, mirtk::GenericBSplineInterpolateImageFunction4D< TImage >, mirtk::GenericBSplineInterpolateImageFunction2D< BaseImage >, mirtk::GenericBSplineInterpolateImageFunction3D< BaseImage >, and mirtk::GenericBSplineInterpolateImageFunction4D< BaseImage >.
Definition at line 693 of file BSplineInterpolateImageFunction.hxx.
|
virtual |
Evaluate generic image at an arbitrary location (in pixels)
This function is used to only interpolate foreground image values. If fully outside the foreground region, the _DefaultValue is returned.
Implements mirtk::GenericInterpolateImageFunction< TImage >.
Reimplemented in mirtk::GenericBSplineInterpolateImageFunction2D< TImage >, mirtk::GenericBSplineInterpolateImageFunction3D< TImage >, mirtk::GenericBSplineInterpolateImageFunction4D< TImage >, mirtk::GenericBSplineInterpolateImageFunction2D< BaseImage >, mirtk::GenericBSplineInterpolateImageFunction3D< BaseImage >, and mirtk::GenericBSplineInterpolateImageFunction4D< BaseImage >.
Definition at line 702 of file BSplineInterpolateImageFunction.hxx.