37#ifndef vtkImageSincInterpolator_h
38#define vtkImageSincInterpolator_h
40#include "vtkImagingCoreModule.h"
43#define VTK_LANCZOS_WINDOW 0
44#define VTK_KAISER_WINDOW 1
45#define VTK_COSINE_WINDOW 2
46#define VTK_HANN_WINDOW 3
47#define VTK_HAMMING_WINDOW 4
48#define VTK_BLACKMAN_WINDOW 5
49#define VTK_BLACKMAN_HARRIS3 6
50#define VTK_BLACKMAN_HARRIS4 7
51#define VTK_NUTTALL_WINDOW 8
52#define VTK_BLACKMAN_NUTTALL3 9
53#define VTK_BLACKMAN_NUTTALL4 10
54#define VTK_SINC_KERNEL_SIZE_MAX 32
152 this->SetBlurFactors(f[0], f[1], f[2]); }
154 f[0] = this->BlurFactors[0];
155 f[1] = this->BlurFactors[1];
156 f[2] = this->BlurFactors[2]; }
205 const double matrix[16],
const int extent[6],
int newExtent[6],
208 const float matrix[16],
const int extent[6],
int newExtent[6],
267 float *KernelLookupTable[3];
271 double BlurFactors[3];
272 double LastBlurFactors[3];
interpolate data values from images
topologically and geometrically regular array of data
perform sinc interpolation on images
virtual void InternalUpdate()
Update the interpolator.
void SetWindowFunctionToKaiser()
vtkImageSincInterpolator()
virtual void SetWindowFunction(int mode)
The window function to use.
void SetWindowFunctionToCosine()
virtual const char * GetWindowFunctionAsString()
double * GetBlurFactors()
virtual void BuildKernelLookupTable()
Build the lookup tables used for the interpolation.
void SetWindowFunctionToLanczos()
void UseWindowParameterOff()
~vtkImageSincInterpolator()
void GetBlurFactors(double f[3])
virtual bool IsSeparable()
Returns true if the interpolator supports weight precomputation.
int GetUseWindowParameter()
void SetWindowFunctionToBlackmanNuttall3()
virtual void PrecomputeWeightsForExtent(const float matrix[16], const int extent[6], int newExtent[6], vtkInterpolationWeights *&weights)
void SetRenormalization(int renormalization)
Turn off renormalization.
void SetWindowFunctionToBlackmanHarris3()
virtual void GetRowInterpolationFunc(void(**floatfunc)(vtkInterpolationWeights *, int, int, int, float *, int))
void SetUseWindowParameter(int val)
Turn this on in order to use SetWindowParameter.
void SetWindowFunctionToBlackmanNuttall4()
virtual void FreePrecomputedWeights(vtkInterpolationWeights *&weights)
Free the precomputed weights.
void SetWindowFunctionToNuttall()
virtual void ComputeSupportSize(const double matrix[16], int support[3])
Get the support size for use in computing update extents.
void SetAntialiasing(int antialiasing)
Turn on antialiasing.
void SetWindowHalfWidth(int n)
Set the window half-width, this must be an integer between 1 and 16, with a default value of 3.
void SetBlurFactors(const double f[3])
static vtkImageSincInterpolator * New()
void SetWindowFunctionToHann()
void UseWindowParameterOn()
virtual void FreeKernelLookupTable()
Free the kernel lookup tables.
void SetWindowFunctionToBlackman()
virtual void InternalDeepCopy(vtkAbstractImageInterpolator *obj)
Copy the interpolator.
virtual void GetInterpolationFunc(void(**floatfunc)(vtkInterpolationInfo *, const float[3], float *))
virtual void GetRowInterpolationFunc(void(**doublefunc)(vtkInterpolationWeights *, int, int, int, double *, int))
Get the row interpolation functions.
double GetWindowParameter()
virtual void GetInterpolationFunc(void(**doublefunc)(vtkInterpolationInfo *, const double[3], double *))
Get the interpolation functions.
void RenormalizationOff()
void SetWindowParameter(double parm)
Set the alpha parameter for the Kaiser window function.
void SetWindowFunctionToBlackmanHarris4()
void SetWindowFunctionToHamming()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void PrecomputeWeightsForExtent(const double matrix[16], const int extent[6], int newExtent[6], vtkInterpolationWeights *&weights)
If the data is going to be sampled on a regular grid, then the interpolation weights can be precomput...
void SetBlurFactors(double x, double y, double z)
Blur the image by widening the windowed sinc kernel by the specified factors for the x,...
a simple class to control print indentation
#define VTK_HAMMING_WINDOW
#define VTK_KAISER_WINDOW
#define VTK_BLACKMAN_HARRIS4
#define VTK_NUTTALL_WINDOW
#define VTK_BLACKMAN_WINDOW
#define VTK_BLACKMAN_NUTTALL4
#define VTK_LANCZOS_WINDOW
#define VTK_COSINE_WINDOW
#define VTK_BLACKMAN_HARRIS3
#define VTK_BLACKMAN_NUTTALL3