Les quatre points rouges montrent les points de données et le point vert est le point auquel nous voulons interpoler.
Exemple d'interpolation bilinéaire sur le carré unitaire avec les valeurs
z 0, 1, 1 et 0,5 comme indiqué. Les valeurs interpolées entre les deux sont représentées par la couleur.
En mathématiques , l' interpolation bilinéaire est une extension de l'interpolation linéaire pour interpoler les fonctions de deux variables (par exemple, x et y ) sur une grille 2D rectiligne .
L'interpolation bilinéaire est effectuée en utilisant une interpolation linéaire d'abord dans une direction, puis à nouveau dans l'autre direction. Bien que chaque pas soit linéaire dans les valeurs échantillonnées et dans la position, l'interpolation dans son ensemble n'est pas linéaire mais plutôt quadratique à l'emplacement de l'échantillon.
L'interpolation bilinéaire est l'une des techniques de rééchantillonnage de base en vision par ordinateur et en traitement d'image , où elle est également appelée filtrage bilinéaire ou cartographie de texture bilinéaire .
Algorithme
Supposons que l'on veuille trouver la valeur de la fonction inconnue f au point ( x , y ). On suppose que nous connaissons la valeur de f aux quatre points Q 11 = ( x 1 , y 1 ), Q 12 = ( x 1 , y 2 ), Q 21 = ( x 2 , y 1 ) et Q 22 = ( x 2 , y 2 ).
Nous faisons d'abord une interpolation linéaire dans la direction x . Cela donne
Nous procédons par interpolation dans la direction y pour obtenir l'estimation souhaitée:
Notez que nous arriverons au même résultat si l'interpolation se fait d'abord le long de la direction y puis selon la direction x .
Algorithme alternatif
Une autre manière d'écrire la solution au problème d'interpolation est
où les coefficients sont trouvés en résolvant le système linéaire
donnant le résultat
Si une solution est préférée en termes de f ( Q ), alors nous pouvons écrire
où les coefficients sont trouvés en résolvant
Carré d'unité
Si nous choisissons un système de coordonnées dans lequel les quatre points où f est connu sont (0, 0), (1, 0), (0, 1) et (1, 1), alors la formule d'interpolation se simplifie en
ou de manière équivalente, dans les opérations matricielles:
Une visualisation géométrique de l'interpolation bilinéaire. Le produit de la valeur au point souhaité (noir) et de la surface entière est égal à la somme des produits de la valeur à chaque coin et de la surface partielle en diagonale opposée au coin (couleurs correspondantes).
Non linéaire
Comme son nom l'indique, l'interpolant bilinéaire n'est pas linéaire; mais c'est le produit de deux fonctions linéaires . Par exemple, l'interpolation bilinéaire dérivée ci-dessus est un produit des valeurs de et .
Alternativement, l'interpolant sur le carré unitaire peut être écrit comme
où
Dans les deux cas, le nombre de constantes (quatre) correspond au nombre de points de données où f est donné. L'interpolant est linéaire le long de lignes parallèles à la direction x ou y , de manière équivalente si x ou y est défini comme constant. Le long de toute autre ligne droite, l'interpolant est quadratique . Cependant, même si l'interpolation n'est pas linéaire en position ( x et y ), elle est linéaire en amplitude, comme il ressort des équations ci-dessus: tous les coefficients a j , j = 1–4, sont proportionnels au valeur de la fonction f .
Le résultat de l'interpolation bilinéaire est indépendant de quel axe est interpolé en premier et de quel second. Si nous avions d'abord effectué l'interpolation linéaire dans la direction y puis dans la direction x , l'approximation résultante serait la même.
L'extension évidente de l'interpolation bilinéaire à trois dimensions est appelée interpolation trilinéaire .
Application au traitement d'image
Comparaison de l'
interpolation bilinéaire avec des
interpolations à 1 et 2 dimensions. Les points noirs et rouges / jaunes / verts / bleus correspondent respectivement au point interpolé et aux échantillons voisins. Leurs hauteurs au-dessus du sol correspondent à leurs valeurs.
En vision par ordinateur et en traitement d'images , l'interpolation bilinéaire est utilisée pour rééchantillonner les images et les textures. Un algorithme est utilisé pour mapper un emplacement de pixel d'écran à un point correspondant sur la carte de texture . Une moyenne pondérée des attributs (couleur, transparence, etc.) des quatre texels environnants est calculée et appliquée au pixel de l'écran. Ce processus est répété pour chaque pixel formant l'objet texturé.
Lorsqu'une image doit être mise à l'échelle, chaque pixel de l'image d'origine doit être déplacé dans une certaine direction en fonction de la constante d'échelle. Cependant, lors de la mise à l'échelle d'une image par un facteur d'échelle non intégral, il y a des pixels (c'est-à-dire des trous ) qui ne reçoivent pas de valeurs de pixels appropriées. Dans ce cas, ces trous doivent recevoir des valeurs RVB ou en niveaux de gris appropriées afin que l'image de sortie n'ait pas de pixels non valorisés.
L'interpolation bilinéaire peut être utilisée là où une transformation d'image parfaite avec correspondance de pixels est impossible, de sorte que l'on puisse calculer et attribuer des valeurs d'intensité appropriées aux pixels. Contrairement à d'autres techniques d'interpolation telles que l'interpolation du plus proche voisin et l' interpolation bicubique, l'interpolation bilinéaire utilise uniquement les valeurs des 4 pixels les plus proches, situés dans des directions diagonales à partir d'un pixel donné, afin de trouver les valeurs d'intensité de couleur appropriées de ce pixel.
L'interpolation bilinéaire considère le voisinage 2 × 2 le plus proche des valeurs de pixels connues entourant l'emplacement calculé du pixel inconnu. Il faut ensuite une moyenne pondérée de ces 4 pixels pour arriver à sa valeur interpolée finale.
Exemple d'interpolation bilinéaire en valeurs de niveaux de gris
Comme le montre l'exemple de droite, la valeur d'intensité au pixel calculée comme étant à la ligne 20,2, colonne 14,5 peut être calculée en interpolant d'abord linéairement entre les valeurs des colonnes 14 et 15 sur chaque lignes 20 et 21, ce qui donne
puis interpolant linéairement entre ces valeurs, donnant
Cet algorithme réduit une partie de la distorsion visuelle causée par le redimensionnement d'une image à un facteur de zoom non intégral, par opposition à l'interpolation du plus proche voisin, ce qui fera apparaître certains pixels plus grands que d'autres dans l'image redimensionnée.
Voir également
Les références