Bilinear Interpolation Calculator
Welcome to Omni's bilinear interpolation calculator! Are you a bilinear interpolation professional? Or rather wondering what bilinear interpolation is all about? Here you can find a brief overview of the bilinear interpolation method as well as a detailed explanation and derivation of the formula for bilinear interpolation.
As a bonus, we provided an example of how to perform bilinear interpolation by hand.
What is a bilinear interpolation?
Bilinear interpolation is a popular method for twodimensional interpolation on a rectangle. That is, we assume that we know the values of some unknown function at four points that form a rectangle. Let these points equal (x₁, y₁)
, (x₁, y₂)
, (x₂, y₁)
and (x₂, y₂)
and the values of the function are the following:
 The value at
(x₁, y₁)
isQ₁₁
;  The value at
(x₁, y₂)
isQ₂₁
;  The value at
(x₂, y₁)
isQ₁₂
; and  The value at
(x₂, y₂)
isQ₂₂
.
Using bilinear interpolation, we can estimate this function's value at any point (x, y)
inside this rectangle. We will denote this unknown value by P
.
This interpolation scheme is widespread and has many applications, in particular in computer vision and image processing. It is based on a much simpler and widely taught procedure of linear interpolation, which you can discover with the help of Omni's linear interpolation calculator. For details, see the sections below.
It's worth knowing that the data required for bilinear interpolation is often collected in the form of the following table. Compare it to the plot above to see how smart the design of this table is!
How to use this bilinear interpolation calculator?
Using this calculator is straightforward:

Enter the data:

x₁, y₁, x₂, y₂
for the coordinates of the base points of interpolation; 
Q₁₁, Q₁₂, Q₂₁, Q₂₂
for the values at these points; and 
x, y
for the point at which we want to interpolate the unknown function by means of bilinear interpolation


That's it! Our bilinear interpolation calculator returns the result, i.e., the value of
P
at(x, y)
. A piece of cake, isn't it? 🍰
Bilinear interpolation formula
The general idea of the bilinear interpolation method is the following:
 Start by performing two linear interpolations in the xdirection (horizontal): first at
(x, y₁)
, then at(x, y₂)
.  Next, perform linear interpolation in the ydirection (vertical): use the interpolated values at
(x, y₁)
and(x, y₂)
to obtain the interpolation at the final point(x, y)
.
Let's have a look at the details.
 We find the linear interpolation of function
f
at(x, y₁)
using the values off
at(x₁, y₁)
and(x₂, y₁)
which areQ₁₁
andQ₂₁
respectively:
 We find the linear interpolation of
f
at(x, y₂)
using the values off
at(x₁, y₂)
and(x₂, y₂)
which areQ₁₂
andQ₂₂
respectively:
 Finally, we find the linear interpolation at
(x, y)
using the interpolated values off
at(x, y₁)
and(x, y₂)
:
All that's let to do is to rewrite the above expression for P
to get rid of the intermediate values R₁
and R₂
.
 Substituting the expressions for
R₁
andR₂
from Steps 1 & 2, we get the following formula forP
:
 Using vectors and matrices, we can rewrite the above bilinear interpolation formula for
P
into the following form:
Tip: You may want to use to our matrix multiplication calculator while using the matrix form of the bilinear interpolation formula.
Bilinear interpolation example
That was lots of theory, wasn't it? If you feel a bit overwhelmed, don't worry! In this section, we'll solve an example to show you how to use the bilinear interpolation formula in practice.
Assume that an unknown function has:
 Value
12
at(0, 1)
;  Value
4
at(0, 3)
;  Value
0
at(4, 1)
; and  Value
8
at(4, 3)
.
We want to estimate the value of this function at (1, 2)
.

Let's begin by writing down some data.

For the rectangle corners, we have:
x₁ = 0
,x₂ = 4
,y₁ = 1
, andy₂ = 3

The respective function values are:
Q₁₁ = 12
,Q₂₁ = 4
,Q₁₂ = 0
, andQ₂₂ = 8

The point at which we perform the bilinear interpolation is:
x = 1
,y = 2


Let's calculate the terms that appear in the bilinear interpolation formula for
P
:
(x₂  x₁) * (y₂  y₁) = (4  0) * (3  1) = 8

(x₂  x) * (y₂  y) = (4  1) * (3  2) = 3

(x  x₁) * (y₂  y) = (1  0) * (3  2) = 1

(x₂  x) * (y  y₁) = (4  1) * (2  1) = 3

(x  x₁) * (y  y₁) = (1  0) * (2  1) = 1


Let's put those values together into the formula for
P
. We obtain:P = 3/8 * Q₁₁ + 1/8 * Q₂₁ + 3/8 * Q₁₂ + 1/8 * Q₂₂

It's time to substitute the values
Q₁₁, Q₂₁, Q₁₂, and Q₂₂
:P = 3/8 * 12 + 1/8 * (4) + 3/8 * 0 + 1/8 * 8

Finally, we have:
P = 9/2  1/2 + 1 = 5
Properties of bilinear interpolation
Let's look once again at the final formula for P
and point out some of its properties:
From this formula we see that:

Bilinear interpolation is

Linear with respect to the values
Q₁₁, Q₁₂, Q₂₁, and Q₂₂
of the unknown function at the corners of the rectangle; 
Linear along every horizontal line (where
x
changes andy
is constant) and along every vertical line (wherex
is constant andy
changes); but 
Quadratic with respect to the location of the interpolation point, i.e., as a function of both
x
andy
.


Bilinear interpolation is the weighted average of the values
Q₁₁, Q₁₂, Q₂₁, and Q₂₂
at the four corners of the rectangle, and the weights are determined by the distance between the corners and the point(x, y)
. The closer a corner is to(x, y)
, the more weight that corner gets. See the weighted average calculator to learn more.