Tricubic interpolation functions for 3D images. More...
Go to the source code of this file.
Defines | |
#define | vil3d_tricub_interp_txx_ |
#define | vil3d_I(dx, dy, dz) (pix1[(dx)*xstep+(dy)*ystep+(dz)*zstep]) |
#define | vil3d_I(dx, dy, dz) (pix1[(dx)*xstep+(dy)*ystep+(dz)*zstep]) |
#define | VIL3D_TRICUB_INTERP_INSTANTIATE(T) |
Functions | |
template<class T > | |
double | vil3d_tricub_interp_raw (double x, double y, double z, const T *data, vcl_ptrdiff_t xstep, vcl_ptrdiff_t ystep, vcl_ptrdiff_t zstep) |
Compute tricubic interpolation at (x,y,z), no bound checks. | |
template<class T > | |
double | vil3d_tricub_interp_safe_trilinear_extend (double x, double y, double z, const T *data, int nx, int ny, int nz, vcl_ptrdiff_t xstep, vcl_ptrdiff_t ystep, vcl_ptrdiff_t zstep) |
Compute tricubic interpolation at (x,y,z), with bound checks. |
Tricubic interpolation functions for 3D images.
Definition in file vil3d_tricub_interp.txx.
#define vil3d_I | ( | dx, | |
dy, | |||
dz | |||
) | (pix1[(dx)*xstep+(dy)*ystep+(dz)*zstep]) |
#define vil3d_I | ( | dx, | |
dy, | |||
dz | |||
) | (pix1[(dx)*xstep+(dy)*ystep+(dz)*zstep]) |
#define VIL3D_TRICUB_INTERP_INSTANTIATE | ( | T | ) |
template double vil3d_tricub_interp_raw (double x, double y, double z, const T* data, \ vcl_ptrdiff_t xstep, vcl_ptrdiff_t ystep, vcl_ptrdiff_t zstep); \ template double vil3d_tricub_interp_safe_trilinear_extend (double x, double y, double z, const T* data, \ int nx, int ny, int nz, \ vcl_ptrdiff_t xstep, vcl_ptrdiff_t ystep, vcl_ptrdiff_t zstep)
Definition at line 417 of file vil3d_tricub_interp.txx.
#define vil3d_tricub_interp_txx_ |
Definition at line 2 of file vil3d_tricub_interp.txx.
double vil3d_tricub_interp_raw | ( | double | x, |
double | y, | ||
double | z, | ||
const T * | data, | ||
vcl_ptrdiff_t | xstep, | ||
vcl_ptrdiff_t | ystep, | ||
vcl_ptrdiff_t | zstep | ||
) |
Compute tricubic interpolation at (x,y,z), no bound checks.
Image is nx * ny * nz array of T. x,y,z element is data[z*zstep+ystep*y+x*xstep] No bound checks are done.
Definition at line 27 of file vil3d_tricub_interp.txx.
double vil3d_tricub_interp_safe_trilinear_extend | ( | double | x, |
double | y, | ||
double | z, | ||
const T * | data, | ||
int | nx, | ||
int | ny, | ||
int | nz, | ||
vcl_ptrdiff_t | xstep, | ||
vcl_ptrdiff_t | ystep, | ||
vcl_ptrdiff_t | zstep | ||
) |
Compute tricubic interpolation at (x,y,z), with bound checks.
Image is nx * ny array of Ts. x,y element is data[nx*y+x] If (x,y,z) is outside safe interpolatable image region, trilinear interpolated value of the nearest valid pixels is returned. The safe interpolatable region is [1,nx-3]*[1,ny-3]*[1,nz-3].
Definition at line 86 of file vil3d_tricub_interp.txx.