Interpolation methods used in IMAQ Resample function

Interpolation is the process by which the pixel value at an untabulated point in the image is determined. An important concept in the interpolation process is that of the grid square in which the point (x’,y’) falls as shown in figure below. This square defines four points with known pixel values that surround the desired interior point.

Terminology used in the documentation:
	(x,y): x and y coordinates of the pixel position in the image.
	f(x,y): pixel value at coordinates (x,y)

1. Zero-Order Interpolation
	Zero-order interpolation assigns the pixel value of the closest neighbor as the new interpolated value. From the figure above, the pixel value at location (x’,y’) is assigned 
the pixel value at (x0, y0), i.e., 

f(x’,y’) = f(x0,y0).

2. Bilinear Interpolation
	Bilinear interpolation utilizes a linear combination of the four nearest neighbor’s pixel values to produce a new, interpolated value. Using bilinear interpolation, the pixel value at (x’,y’) is obtained as:

f(x’,y’) =  a.b.f(x0,y0) + (1-a).b.f(x1,y1) + (1-a).(1-b).f(x2,y2) + a.(1-b).f(x3,y3) 

Bilinear interpolation is usually sufficient for most resampling applications. Within each square grid the interpolated values changes continuously. However, gradient at the boundaries of the grids changes discontinuously.  

Higher order interpolating functions can be used to enforce a smoother interpolation behavior and increased accuracy. The next two interpolation methods incorporate higher order functions.

3. Quadratic Interpolation
	Quadratic interpolation fits a quadratic function through neighboring pixel values to produce a new, interpolated value.  To fit a quadratic function nine neighboring pixel values are used.  

	This method gives a smoother interpolation effect than the bi-linear method.

4. Cubic Spline Interpolation

	Bicubic interpolation uses a cubic interpolating function to determine the pixel values. To use a cubic interpolation function, the method uses not just the pixel values at the points on the square grid but also the derivatives (gradients or change in pixel values) of these values.  

	The cubic spline method used in IMAQ is a special case of the Bicubic spline interpolation method: the interpolating function is of a cubic form with the derivatives being determined using one-dimensional splines. 

	Cubic spline interpolation usually gives the best visual effect and better accuracy than the other methods.

References:

“Numerical Recipes in C: The Art of Scientific Computing”, William H. Press et.al., Cambridge University Press, 1994.

“Digital Image Warping”, George Wolberg, IEEE Computer Press Society Press, 1990.