Interpolation bilinéaire
# Interpolation bilinéaire

L'interpolation bilinéaire est une méthode d'interpolation pour les fonctions de deux variables sur une grille régulière. Elle permet de calculer la valeur d'une fonction en un point quelconque, à partir de ses deux plus proches voisins dans chaque direction. C'est une méthode très utilisée en imagerie numérique pour le redimensionnement d'image, qui permet d'obtenir de meilleurs résultats que l'interpolation par plus proche voisin, tout en restant de complexité raisonnable.

## Principe général

Contrairement à ce que son nom suggère, la fonction d'interpolation n'est pas bilinéaire mais quadratique, qui peut se mettre sous la forme :

    $f(x,y)=ax+by+cxy+d.$

La valeur f(x,y) est la valeur interpolée au point de coordonnées (x,y), et a, b, c, d sont des constantes déterminées à partir des quatre voisins $(x_1,y_1),$ $(x_1,y_2),$ $(x_2,y_1),$ $(x_2,y_2)$ du point (x,y) dont on cherche la valeur. Connaissant les valeurs en ces points, on peut écrire un système de 4 équations à 4 inconnues :

    $\left\{{\begin{matrix}f(x_{1},y_{1})=ax_{1}+by_{1}+cx_{1}y_{1}+d\\f(x_{2},y_{1})=ax_{2}+by_{1}+cx_{2}y_{1}+d\\f(x_{1},y_{2})=ax_{1}+by_{2}+cx_{1}y_{2}+d\\f(x_{2},y_{2})=ax_{2}+by_{2}+cx_{2}y_{2}+d\end{matrix}}\right.$

L'interpolation bilinéaire peut s'interpréter comme une succession de deux interpolations linéaires, une dans chaque direction.

## Solution du système

Un changement de variable permet de simplifier considérablement le système à résoudre. Considérons les nouvelles variables suivantes :

    $dx=x-x_{1},\quad dy=y-y_{1},$

où $(x_1,y_1)$ sont les coordonnées du coin inférieur gauche. La nouvelle fonction d'interpolation bilinéaire s'écrit alors :

    $f(dx,dy)=a\,dx+b\,dy+c\,dx\,dy+d.$

En introduisant les notations $\Delta x=x_{2}-x_{1}$ et $\Delta y=y_{2}-y_{1}$, la matrice à inverser devient :

    $A={\begin{pmatrix}0&0&0&1\\\Delta x&0&0&1\\0&\Delta y&0&1\\\Delta x&\Delta y&\Delta x\Delta y&1\\\end{pmatrix}}$ .

Il reste à introduire les notations suivantes :

    $\Delta f_{x}=f(x_{2},y_{1})-f(x_{1},y_{1}),\quad \Delta f_{y}=f(x_{1},y_{2})-f(x_{1},y_{1}),$
    $\Delta f_{xy}=f(x_{1},y_{1})+f(x_{2},y_{2})-f(x_{2},y_{1})-f(x_{1},y_{2}).$

La fonction d'interpolation bilinéaire solution du problème vient alors directement :

    $f(x,y)=\Delta f_{x}{\frac {dx}{\Delta x}}+\Delta f_{y}{\frac {dy}{\Delta y}}+\Delta f_{xy}{\frac {dx}{\Delta x}}{\frac {dy}{\Delta y}}+f(x_{1},y_{1}).$
