Concept

# Bilinear interpolation

Summary
In mathematics, bilinear interpolation is a method for interpolating functions of two variables (e.g., x and y) using repeated linear interpolation. It is usually applied to functions sampled on a 2D rectilinear grid, though it can be generalized to functions defined on the vertices of (a mesh of) arbitrary convex quadrilaterals. Bilinear interpolation is performed using linear interpolation first in one direction, and then again in another direction. Although each step is linear in the sampled values and in the position, the interpolation as a whole is not linear but rather quadratic in the sample location. Bilinear interpolation is one of the basic resampling techniques in computer vision and , where it is also called bilinear filtering or bilinear texture mapping. Suppose that we want to find the value of the unknown function f at the point (x, y). It is assumed that we know the value of f at the four points Q11 = (x1, y1), Q12 = (x1, y2), Q21 = (x2, y1), and Q22 = (x2, y2). We first do linear interpolation in the x-direction. This yields We proceed by interpolating in the y-direction to obtain the desired estimate: Note that we will arrive at the same result if the interpolation is done first along the y direction and then along the x direction. An alternative way is to write the solution to the interpolation problem as a multilinear polynomial where the coefficients are found by solving the linear system yielding the result The solution can also be written as a weighted mean of the f(Q): where the weights sum to 1 and satisfy the transposed linear system yielding the result which simplifies to in agreement with the result obtained by repeated linear interpolation. The set of weights can also be interpreted as a set of generalized barycentric coordinates for a rectangle. Combining the above, we have If we choose a coordinate system in which the four points where f is known are (0, 0), (0, 1), (1, 0), and (1, 1), then the interpolation formula simplifies to or equivalently, in matrix operations: Here we also recognize the weights: Alternatively, the interpolant on the unit square can be written as where In both cases, the number of constants (four) correspond to the number of data points where f is given.