20 #ifndef MIRTK_LinearInterpolateImageFunction_H 21 #define MIRTK_LinearInterpolateImageFunction_H 23 #include "mirtk/InterpolateImageFunction.h" 24 #include "mirtk/BaseImage.h" 33 template <
class TImage>
37 mirtkGenericInterpolatorMacro(
82 VoxelType
Get2D(
double,
double,
double = 0,
double = 0)
const;
97 template <
class TOtherImage>
typename TOtherImage::VoxelType
98 Get2D(
const TOtherImage *,
double,
double,
double = 0,
double = 0)
const;
110 template <
class TOtherImage>
typename TOtherImage::VoxelType
111 GetWithPadding2D(
const TOtherImage *,
double,
double,
double = 0,
double = 0)
const;
117 VoxelType
Get3D(
double,
double,
double = 0,
double = 0)
const;
132 template <
class TOtherImage>
typename TOtherImage::VoxelType
133 Get3D(
const TOtherImage *,
double,
double,
double = 0,
double = 0)
const;
145 template <
class TOtherImage>
typename TOtherImage::VoxelType
146 GetWithPadding3D(
const TOtherImage *,
double,
double,
double = 0,
double = 0)
const;
152 VoxelType
Get4D(
double,
double,
double = 0,
double = 0)
const;
167 template <
class TOtherImage>
typename TOtherImage::VoxelType
168 Get4D(
const TOtherImage *,
double,
double,
double = 0,
double = 0)
const;
180 template <
class TOtherImage>
typename TOtherImage::VoxelType
181 GetWithPadding4D(
const TOtherImage *,
double,
double,
double = 0,
double = 0)
const;
187 VoxelType
Get(
double,
double,
double = 0,
double = 0)
const;
193 virtual VoxelType
GetWithPadding(
double,
double,
double = 0,
double = 0)
const;
202 template <
class TOtherImage>
typename TOtherImage::VoxelType
203 Get(
const TOtherImage *,
double,
double,
double = 0,
double = 0)
const;
215 template <
class TOtherImage>
typename TOtherImage::VoxelType
216 GetWithPadding(
const TOtherImage *,
double,
double,
double = 0,
double = 0)
const;
219 virtual VoxelType
GetInside2D(
double,
double,
double = 0,
double = 0)
const;
222 virtual VoxelType
GetInside3D(
double,
double,
double = 0,
double = 0)
const;
225 virtual VoxelType
GetInside4D(
double,
double,
double = 0,
double = 0)
const;
232 virtual VoxelType
GetInside(
double,
double,
double = 0,
double = 0)
const;
235 virtual VoxelType
GetOutside(
double,
double,
double = 0,
double = 0)
const;
316 void Jacobian(
Matrix &,
double,
double,
double = 0.,
double = NaN)
const;
360 template <
class TOtherImage>
361 void Jacobian2D(
Matrix &,
const TOtherImage *,
double,
double,
double = 0.,
double = NaN)
const;
375 template <
class TOtherImage>
376 void Jacobian3D(
Matrix &,
const TOtherImage *,
double,
double,
double = 0.,
double = NaN)
const;
385 template <
class TOtherImage>
386 void Jacobian4D(
Matrix &,
const TOtherImage *,
double,
double,
double = 0.,
double = NaN)
const;
395 template <
class TOtherImage>
396 void Jacobian(
Matrix &,
const TOtherImage *,
double,
double,
double = 0.,
double = NaN)
const;
420 #endif // MIRTK_LinearInterpolateImageFunction_H static int ComputeWeights(double, Real[2])
LinearInterpolateImageFunction()
Constructor.
VoxelType GetWithPadding4D(double, double, double=0, double=0) const
VoxelType Get(double, double, double=0, double=0) const
void JacobianWithPadding3D(Matrix &, double, double, double=0., double=NaN) const
void Jacobian4D(Matrix &, double, double, double=0., double=NaN) const
virtual void EvaluateJacobianWithPaddingInside(Matrix &, double, double, double=0, double=NaN) const
VoxelType Get3D(double, double, double=0, double=0) const
virtual VoxelType GetInside(double, double, double=0, double=0) const
virtual void Initialize()
virtual void EvaluateJacobianInside(Matrix &, double, double, double=0, double=NaN) const
virtual ~GenericLinearInterpolateImageFunction()
Destructor.
virtual void EvaluateJacobianOutside(Matrix &, double, double, double=0, double=NaN) const
virtual VoxelType GetInside3D(double, double, double=0, double=0) const
Evaluate generic 3D image without handling boundary conditions.
virtual VoxelType GetWithPaddingOutside(double, double, double=0, double=0) const
virtual void BoundingInterval(double, int &, int &) const
void Jacobian(Matrix &, double, double, double=0., double=NaN) const
Get 1st order derivatives of given image at arbitrary location (in pixels)
VoxelType Get4D(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.
void Jacobian3D(Matrix &, double, double, double=0., double=NaN) const
VoxelType Get2D(double, double, double=0, double=0) const
VoxelType GetWithPadding3D(double, double, double=0, double=0) const
virtual VoxelType GetWithPaddingInside(double, double, double=0, double=0) const
void JacobianWithPadding4D(Matrix &, double, double, double=0., double=NaN) const
void Jacobian2D(Matrix &, double, double, double=0., double=NaN) const
GenericLinearInterpolateImageFunction()
Default constructor.
virtual VoxelType GetWithPadding(double, double, double=0, double=0) const
virtual void EvaluateJacobianWithPaddingOutside(Matrix &, double, double, double=0, double=NaN) const
virtual VoxelType GetInside4D(double, double, double=0, double=0) const
Evaluate generic 4D image without handling boundary conditions.
void JacobianWithPadding(Matrix &, double, double, double=0, double=NaN) const
Get 1st order derivatives of given image at arbitrary location (in pixels)
virtual VoxelType GetOutside(double, double, double=0, double=0) const
Evaluate generic image at an arbitrary location (in pixels)
VoxelType GetWithPadding2D(double, double, double=0, double=0) const
void JacobianWithPadding2D(Matrix &, double, double, double=0., double=NaN) const