21 #ifndef MIRTK_GaussianInterpolateImageFunction_H 22 #define MIRTK_GaussianInterpolateImageFunction_H 24 #include "mirtk/BaseImage.h" 25 #include "mirtk/InterpolateImageFunction.h" 34 template <
class TImage>
38 mirtkGenericInterpolatorMacro(
40 Interpolation_Gaussian
47 mirtkPublicAttributeMacro(
double, Sigma);
64 double _dx, _dy, _dz, _dt;
85 virtual void BoundingBox(
double,
double,
int &,
int &,
89 virtual void BoundingBox(
double,
double,
double,
int &,
int &,
int &,
90 int &,
int &,
int &)
const;
93 virtual void BoundingBox(
double,
double,
double,
double,
94 int &,
int &,
int &,
int &,
95 int &,
int &,
int &,
int &)
const;
104 VoxelType
Get2D(
double,
double,
double = 0,
double = 0)
const;
119 template <
class TOtherImage>
typename TOtherImage::VoxelType
120 Get2D(
const TOtherImage *,
double,
double,
double = 0,
double = 0)
const;
132 template <
class TOtherImage>
typename TOtherImage::VoxelType
133 GetWithPadding2D(
const TOtherImage *,
double,
double,
double = 0,
double = 0)
const;
139 VoxelType
Get3D(
double,
double,
double = 0,
double = 0)
const;
154 template <
class TOtherImage>
typename TOtherImage::VoxelType
155 Get3D(
const TOtherImage *,
double,
double,
double = 0,
double = 0)
const;
167 template <
class TOtherImage>
typename TOtherImage::VoxelType
168 GetWithPadding3D(
const TOtherImage *,
double,
double,
double = 0,
double = 0)
const;
174 VoxelType
Get4D(
double,
double,
double = 0,
double = 0)
const;
189 template <
class TOtherImage>
typename TOtherImage::VoxelType
190 Get4D(
const TOtherImage *,
double,
double,
double = 0,
double = 0)
const;
202 template <
class TOtherImage>
typename TOtherImage::VoxelType
203 GetWithPadding4D(
const TOtherImage *,
double,
double,
double = 0,
double = 0)
const;
209 VoxelType
Get(
double,
double,
double = 0,
double = 0)
const;
215 virtual VoxelType
GetWithPadding(
double,
double,
double = 0,
double = 0)
const;
224 template <
class TOtherImage>
typename TOtherImage::VoxelType
225 Get(
const TOtherImage *,
double,
double,
double = 0,
double = 0)
const;
237 template <
class TOtherImage>
typename TOtherImage::VoxelType
238 GetWithPadding(
const TOtherImage *,
double,
double,
double = 0,
double = 0)
const;
245 virtual VoxelType
GetInside(
double,
double,
double = 0,
double = 0)
const;
248 virtual VoxelType
GetOutside(
double,
double,
double = 0,
double = 0)
const;
292 #endif // MIRTK_GaussianInterpolateImageFunction_H virtual VoxelType GetWithPadding(double, double, double=0, double=0) const
VoxelType GetWithPadding2D(double, double, double=0, double=0) const
double _RadiusT
Filter radius in t dimension.
virtual VoxelType GetWithPaddingInside(double, double, double=0, double=0) const
VoxelType Get(double, double, double=0, double=0) const
virtual void Initialize()
virtual void BoundingBox(double, double, int &, int &, int &, int &) const
Returns discrete boundaries of local 2D image region needed for interpolation.
VoxelType Get2D(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)
double _dx
Voxel size of input image.
VoxelType GetWithPadding4D(double, double, double=0, double=0) const
virtual VoxelType GetWithPaddingOutside(double, double, double=0, double=0) const
virtual void BoundingInterval(double, int &, int &) const
double _RadiusY
Filter radius in y dimension.
double _RadiusZ
Filter radius in z dimension.
double _RadiusX
Filter radius in x dimension.
VoxelType Get4D(double, double, double=0, double=0) const
VoxelType GetWithPadding3D(double, double, double=0, double=0) const
GaussianInterpolateImageFunction(double sigma=1.0)
Constructor.
GenericGaussianInterpolateImageFunction(double=1.0)
Default constructor.
VoxelType Get3D(double, double, double=0, double=0) const
virtual VoxelType GetInside(double, double, double=0, double=0) const