Macros | Functions
vil_bicub_interp.hxx File Reference

Bicubic interpolation functions for 2D images. More...

#include "vil_bicub_interp.h"

Go to the source code of this file.

Macros

#define vil_I(dx, dy)   (pix1[(dx)*xstep+(dy)*ystep])
 
#define vil_I(dx, dy)   (pix1[(dx)*xstep+(dy)*ystep])
 
#define VIL_BICUB_INTERP_INSTANTIATE(T)
 

Functions

template<class T >
double vil_bicub_interp_unsafe (double x, double y, const T *data, std::ptrdiff_t xstep, std::ptrdiff_t ystep)
 Compute bicubic interpolation at (x,y), no bound checks. Requires 1<x<ni-3, 1<y<nj-3. More...
 
template<class T >
double vil_bicub_interp_raw (double x, double y, const T *data, std::ptrdiff_t xstep, std::ptrdiff_t ystep)
 Compute bicubic interpolation at (x,y), no bound checks. More...
 

Detailed Description

Bicubic interpolation functions for 2D images.

The vil bicub source files were derived from the corresponding vil bilin files, thus the vil bilin/bicub source files are very similar. If you modify something in this file, there is a corresponding bilin file that would likely also benefit from the same change.

In this particular case, there is no corresponding vil_bilin_interp.hxx file, see vil_bilin_interp.h instead.

Definition in file vil_bicub_interp.hxx.

Macro Definition Documentation

◆ VIL_BICUB_INTERP_INSTANTIATE

#define VIL_BICUB_INTERP_INSTANTIATE (   T)
Value:
template double \
vil_bicub_interp_unsafe (double x, double y, const T* data, \
std::ptrdiff_t xstep, std::ptrdiff_t ystep); \
template double \
vil_bicub_interp_raw (double x, double y, const T* data, \
std::ptrdiff_t xstep, std::ptrdiff_t ystep)
double vil_bicub_interp_raw(double x, double y, const T *data, std::ptrdiff_t xstep, std::ptrdiff_t ystep)
Compute bicubic interpolation at (x,y), no bound checks.
double vil_bicub_interp_unsafe(double x, double y, const T *data, std::ptrdiff_t xstep, std::ptrdiff_t ystep)
Compute bicubic interpolation at (x,y), no bound checks. Requires 1<x<ni-3, 1<y<nj-3.

Definition at line 135 of file vil_bicub_interp.hxx.

◆ vil_I [1/2]

#define vil_I (   dx,
  dy 
)    (pix1[(dx)*xstep+(dy)*ystep])

◆ vil_I [2/2]

#define vil_I (   dx,
  dy 
)    (pix1[(dx)*xstep+(dy)*ystep])

Function Documentation

◆ vil_bicub_interp_raw()

template<class T >
double vil_bicub_interp_raw ( double  x,
double  y,
const T *  data,
std::ptrdiff_t  xstep,
std::ptrdiff_t  ystep 
)

Compute bicubic interpolation at (x,y), no bound checks.

Image is nx * ny array of Ts. x,y element is data[xstep*x+ystep*y] No bound checks are done.

Definition at line 67 of file vil_bicub_interp.hxx.

◆ vil_bicub_interp_unsafe()

template<class T >
double vil_bicub_interp_unsafe ( double  x,
double  y,
const T *  data,
std::ptrdiff_t  xstep,
std::ptrdiff_t  ystep 
)

Compute bicubic interpolation at (x,y), no bound checks. Requires 1<x<ni-3, 1<y<nj-3.

Image is nx * ny array of Ts. x,y element is data[xstep*x+ystep*y] No bound checks are done.

Definition at line 30 of file vil_bicub_interp.hxx.