core/vil/vil_bilin_interp.h File Reference


Detailed Description

Bilinear interpolation functions for 2D images.

Author:
Tim Cootes
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 bicub file that would likely also benefit from the same change.

Definition in file vil_bilin_interp.h.

#include <vcl_cassert.h>
#include <vcl_cstddef.h>
#include <vil/vil_image_view.h>

Go to the source code of this file.


Functions

template<class T>
double vil_bilin_interp_unsafe (double x, double y, const T *data, vcl_ptrdiff_t xstep, vcl_ptrdiff_t ystep)
 Compute bilinear interpolation at (x,y), no bound checks. Requires 0<x<ni-2, 0<y<nj-2.
template<class T>
double vil_bilin_interp_unsafe (double x, double y, const T *data, int, int, vcl_ptrdiff_t xstep, vcl_ptrdiff_t ystep)
 Compute bilinear interpolation at (x,y), no bound checks. Requires 0<x<ni-2, 0<y<nj-2.
template<class T>
double vil_bilin_interp_raw (double x, double y, const T *data, vcl_ptrdiff_t xstep, vcl_ptrdiff_t ystep)
 Compute bilinear interpolation at (x,y), no bound checks.
template<class T>
double vil_bilin_interp_raw (double x, double y, const T *data, int, int, vcl_ptrdiff_t xstep, vcl_ptrdiff_t ystep)
 Compute bilinear interpolation at (x,y), no bound checks.
template<class T>
double vil_bilin_interp_safe (double x, double y, const T *data, int nx, int ny, vcl_ptrdiff_t xstep, vcl_ptrdiff_t ystep)
 Compute bilinear interpolation at (x,y), with bound checks.
template<class T>
double vil_bilin_interp (double x, double y, const T *data, int nx, int ny, vcl_ptrdiff_t xstep, vcl_ptrdiff_t ystep)
 Compute bilinear interpolation at (x,y), with minimal bound checks.
template<class T>
double vil_bilin_interp_safe_extend (double x, double y, const T *data, int nx, int ny, vcl_ptrdiff_t xstep, vcl_ptrdiff_t ystep)
 Compute bilinear interpolation at (x,y), with bound checks.

Function Documentation

template<class T>
double vil_bilin_interp ( double  x,
double  y,
const T *  data,
int  nx,
int  ny,
vcl_ptrdiff_t  xstep,
vcl_ptrdiff_t  ystep 
) [inline]

Compute bilinear interpolation at (x,y), with minimal bound checks.

Image is nx * ny array of Ts. x,y element is data[ystep*y+xstep*x] If (x,y) is outside interpolatable image region and NDEBUG is not defined the code will fail an ASSERT. The safe interpolatable region is [0,nx-1]*[0,ny-1].

Definition at line 128 of file vil_bilin_interp.h.

template<class T>
double vil_bilin_interp_raw ( double  x,
double  y,
const T *  data,
int  ,
int  ,
vcl_ptrdiff_t  xstep,
vcl_ptrdiff_t  ystep 
) [inline]

Compute bilinear 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. This is a version of vil_bilin_interp_raw with the same function signature as vil_bilin_interp_safe.

Definition at line 85 of file vil_bilin_interp.h.

template<class T>
double vil_bilin_interp_raw ( double  x,
double  y,
const T *  data,
vcl_ptrdiff_t  xstep,
vcl_ptrdiff_t  ystep 
) [inline]

Compute bilinear 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 57 of file vil_bilin_interp.h.

template<class T>
double vil_bilin_interp_safe ( double  x,
double  y,
const T *  data,
int  nx,
int  ny,
vcl_ptrdiff_t  xstep,
vcl_ptrdiff_t  ystep 
) [inline]

Compute bilinear interpolation at (x,y), with bound checks.

Image is nx * ny array of Ts. x,y element is data[xstep*x+ystep*y] If (x,y) is outside interpolatable image region, zero is returned. The safe interpolatable region is [0,nx-1]*[0,ny-1].

Definition at line 97 of file vil_bilin_interp.h.

template<class T>
double vil_bilin_interp_safe_extend ( double  x,
double  y,
const T *  data,
int  nx,
int  ny,
vcl_ptrdiff_t  xstep,
vcl_ptrdiff_t  ystep 
) [inline]

Compute bilinear interpolation at (x,y), with bound checks.

Image is nx * ny array of Ts. x,y element is data[nx*y+x] If (x,y) is outside safe interpolatable image region, nearest pixel value is returned. The safe interpolatable region is [0,nx-1]*[0,ny-1].

Definition at line 159 of file vil_bilin_interp.h.

template<class T>
double vil_bilin_interp_unsafe ( double  x,
double  y,
const T *  data,
int  ,
int  ,
vcl_ptrdiff_t  xstep,
vcl_ptrdiff_t  ystep 
) [inline]

Compute bilinear interpolation at (x,y), no bound checks. Requires 0<x<ni-2, 0<y<nj-2.

Image is nx * ny array of Ts. x,y element is data[xstep*x+ystep*y] No bound checks are done. This is a version of vil_bilin_interp_unsafe with the same function signature as vil_bilin_interp_safe.

Definition at line 46 of file vil_bilin_interp.h.

template<class T>
double vil_bilin_interp_unsafe ( double  x,
double  y,
const T *  data,
vcl_ptrdiff_t  xstep,
vcl_ptrdiff_t  ystep 
) [inline]

Compute bilinear interpolation at (x,y), no bound checks. Requires 0<x<ni-2, 0<y<nj-2.

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

Definition at line 23 of file vil_bilin_interp.h.


Generated on Sat Nov 22 05:07:56 2008 for core/vil by  doxygen 1.5.1