#include <CubicBSplineInterpolateImageFunction.h>
Public Member Functions | |
virtual void | BoundingInterval (double, int &, int &) const |
GenericCubicBSplineInterpolateImageFunction () | |
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 | GetInside2D (double, double, double=0, double=0) const |
Evaluate generic 2D image without handling boundary conditions. | |
virtual VoxelType | GetInside3D (double, double, double=0, double=0) const |
Evaluate generic 3D image without handling boundary conditions. | |
virtual VoxelType | GetInside4D (double, double, double=0, double=0) const |
Evaluate generic 4D image without handling boundary conditions. | |
virtual VoxelType | GetOutside (double, double, double=0, double=0) const |
Evaluate generic image at an arbitrary location (in pixels) | |
virtual 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 image function. | |
mirtkAggregateMacro (CoefficientExtrapolator, InfiniteCoefficient) | |
Infinite discrete coefficient image obtained by extrapolation. | |
mirtkAttributeMacro (bool, UseInputCoefficients) | |
Input image contains spline coefficients. | |
mirtkAttributeMacro (CoefficientImage, Coefficient) | |
Image of spline coefficients. | |
virtual void | Update () |
Update spline coefficients. | |
virtual | ~GenericCubicBSplineInterpolateImageFunction () |
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. | |
Protected Attributes | |
int | _s2 |
Strides for fast iteration over coefficient image. | |
Protected Attributes inherited from mirtk::InterpolateImageFunction | |
ExtrapolateImageFunction * | _InfiniteInput |
bool | _InfiniteInputOwner |
Whether infinite discrete image was instantiated by this image function. | |
double | _x1 |
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) |
Cubic B-spline interpolation of generic image
Note that the coefficient, i.e., input voxel type may also be a vector type such as Vector3D in particular. This is required by the B-spline free-form transformations. If the input image contains the cubic B-spline interpolation coefficients already, make sure that the VoxelType template argument matches the voxel type of the input image to avoid an unnecessary copy of the input image. This image function will use the memory of the input image directly to access the coefficients in this case.
Definition at line 44 of file CubicBSplineInterpolateImageFunction.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 CubicBSplineInterpolateImageFunction.hxx.
|
inline |
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 681 of file CubicBSplineInterpolateImageFunction.hxx.
|
inline |
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 707 of file CubicBSplineInterpolateImageFunction.hxx.
|
inline |
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 150 of file CubicBSplineInterpolateImageFunction.hxx.
TOtherImage::VoxelType mirtk::GenericCubicBSplineInterpolateImageFunction< 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.
|
inline |
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 311 of file CubicBSplineInterpolateImageFunction.hxx.
TOtherImage::VoxelType mirtk::GenericCubicBSplineInterpolateImageFunction< 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.
|
inline |
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 491 of file CubicBSplineInterpolateImageFunction.hxx.
TOtherImage::VoxelType mirtk::GenericCubicBSplineInterpolateImageFunction< 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.
|
inlinevirtual |
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::GenericCubicBSplineInterpolateImageFunction2D< TImage >, mirtk::GenericCubicBSplineInterpolateImageFunction3D< TImage >, mirtk::GenericCubicBSplineInterpolateImageFunction4D< TImage >, mirtk::GenericCubicBSplineInterpolateImageFunction2D< BaseImage >, mirtk::GenericCubicBSplineInterpolateImageFunction3D< BaseImage >, and mirtk::GenericCubicBSplineInterpolateImageFunction4D< BaseImage >.
Definition at line 835 of file CubicBSplineInterpolateImageFunction.hxx.
|
inlinevirtual |
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.
Reimplemented in mirtk::GenericCubicBSplineInterpolateImageFunction2D< TImage >, mirtk::GenericCubicBSplineInterpolateImageFunction3D< TImage >, mirtk::GenericCubicBSplineInterpolateImageFunction4D< TImage >, mirtk::GenericCubicBSplineInterpolateImageFunction2D< BaseImage >, mirtk::GenericCubicBSplineInterpolateImageFunction3D< BaseImage >, and mirtk::GenericCubicBSplineInterpolateImageFunction4D< BaseImage >.
Definition at line 694 of file CubicBSplineInterpolateImageFunction.hxx.
|
inline |
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 720 of file CubicBSplineInterpolateImageFunction.hxx.
|
inline |
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 187 of file CubicBSplineInterpolateImageFunction.hxx.
|
inline |
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 267 of file CubicBSplineInterpolateImageFunction.hxx.
|
inline |
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 354 of file CubicBSplineInterpolateImageFunction.hxx.
|
inline |
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 442 of file CubicBSplineInterpolateImageFunction.hxx.
|
inline |
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 536 of file CubicBSplineInterpolateImageFunction.hxx.
|
inline |
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 630 of file CubicBSplineInterpolateImageFunction.hxx.
|
inlinevirtual |
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::GenericCubicBSplineInterpolateImageFunction2D< TImage >, mirtk::GenericCubicBSplineInterpolateImageFunction3D< TImage >, mirtk::GenericCubicBSplineInterpolateImageFunction4D< TImage >, mirtk::GenericCubicBSplineInterpolateImageFunction2D< BaseImage >, mirtk::GenericCubicBSplineInterpolateImageFunction3D< BaseImage >, and mirtk::GenericCubicBSplineInterpolateImageFunction4D< BaseImage >.
Definition at line 862 of file CubicBSplineInterpolateImageFunction.hxx.
|
inlinevirtual |
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::GenericCubicBSplineInterpolateImageFunction2D< TImage >, mirtk::GenericCubicBSplineInterpolateImageFunction3D< TImage >, mirtk::GenericCubicBSplineInterpolateImageFunction4D< TImage >, mirtk::GenericCubicBSplineInterpolateImageFunction2D< BaseImage >, mirtk::GenericCubicBSplineInterpolateImageFunction3D< BaseImage >, and mirtk::GenericCubicBSplineInterpolateImageFunction4D< BaseImage >.
Definition at line 875 of file CubicBSplineInterpolateImageFunction.hxx.