Accéder au contenu principal

Transformation affine expliquée : propriétés et applications

Découvrez la définition, la formule, les propriétés clés, les coordonnées homogènes et les applications des transformations affines en graphisme, vision, robotique et préparation des données.
· 14 min lire

Explorez l'IA

Une transformation affine déplace des points d’un espace vers de nouveaux points en appliquant une transformation linéaire suivie d’un décalage, appelé translation. Vous pouvez faire tourner, mettre à l’échelle, cisailler, réfléchir, puis translater l’ensemble : les droites restent des droites. 

Les transformations affines sont omniprésentes, car elles capturent une grande variété de déformations géométriques qui préservent la structure d’un objet, tout en restant peu coûteuses à calculer.

Diverse applications of affine transformations

Applications variées des transformations affines. Source de l’image : Napkin AI

L’idée remonte aux travaux de mathématiciens comme Leonhard Euler et August Ferdinand Möbius, qui cherchaient à identifier quelles propriétés restent invariantes lorsque d’autres changent. 

Aujourd’hui, elles sont au cœur du monde numérique, des feuilles de style CSS aux applications d’imagerie médicale avancées.

Qu’est-ce qu’une transformation affine ?

Les transformations affines se situent à mi-chemin entre « algèbre linéaire pure » et « géométrie concrète ». Elles conservent la propreté mathématique tout en autorisant les translations, ce que les applications linéaires seules ne peuvent pas faire.

Comprendre les espaces et transformations affines

Un espace vectoriel possède un point particulier appelé origine (même si vous ne la dessinez pas, elle existe conceptuellement). Dans un espace vectoriel, on peut additionner et mettre à l’échelle des vecteurs, et il y a un « vecteur nul » privilégié.

Un espace affine ressemble à un espace vectoriel sans origine choisie. Vous pouvez toujours parler de :

  • points (positions)
  • vecteurs de déplacement entre des points (par ex. « aller de P à Q »)
  • addition d’un vecteur à un point (déplacer le point selon ce déplacement)

Mais vous ne pouvez pas additionner deux points de façon intrinsèque, car cette addition dépend du choix d’une origine.

Formellement, un espace affine A sur un espace vectoriel V est un ensemble de points muni d’une action libre et transitive de V. Concrètement : les différences de points vivent dans V, mais les points eux-mêmes non.

Une transformation affine est une application entre espaces affines qui préserve les combinaisons affines (voir plus loin) et, géométriquement, conserve les droites et le parallélisme.

Formule de la transformation affine : définition via les espaces vectoriels

En coordonnées, une transformation affine s’écrit :

Transformation affine sous forme matricielle. 

Où :

  • x ∈ Rn est votre point d’entrée (vecteur colonne)
  • A ∈ Rn×n est une matrice représentant la partie linéaire (rotation, mise à l’échelle, cisaillement, réflexion, combinaisons)
  • b ∈ Rn est un vecteur représentant la translation

Cette structure « linéaire + constante » explique la popularité des applications affines en ingénierie et en informatique : expressives, tout en restant rapides et stables à appliquer.

Propriétés clés des transformations affines

Les transformations affines préservent plusieurs relations géométriques « structurelles », tout en autorisant l’étirement ou le gauchissement des formes.

Quelles propriétés sont préservées par les transformations affines ?

Properties Preserved in Affine Transformation

Propriétés préservées par une transformation affine. Source de l’image : Napkin AI

Préservées :

  1. Colinéarité : si des points sont alignés avant, ils restent alignés après.
  2. Parallélisme : les droites parallèles restent parallèles (crucial en graphisme et cartographie).
  3. Convexité : une forme convexe reste convexe.
  4. Rapports le long d’une droite : si un point divise un segment selon un certain rapport, ce rapport est préservé.

Une façon élégante de l’exprimer est via les combinaisons affines :

Les applications affines préservent ces combinaisons.

Non préservées (en général) :

  • Distances
  • Angles
  • Aires/volumes (sauf conditions particulières)

Enfin, les transformations affines sont stables par composition : réaliser une transformation affine après une autre donne encore une transformation affine.

Structure de groupe des transformations affines

Les transformations affines forment un groupe pour la composition (souvent appelé groupe affine, noté Aff(n)).

La composition s’exprime proprement si

et

alors

On reste dans l’affine. 

Note sur l’inversibilité : Ax+b est inversible si A est inversible (det(A)≠0). Alors :

Vous disposez ainsi d’une algèbre puissante : enchaînez des opérations simples pour construire des transformations complexes, et inversez-les au besoin.

Matrice de transformation affine

Pour calculer efficacement les transformations affines, on utilise des matrices — en particulier les coordonnées homogènes, qui permettent d’exprimer les translations de manière compatible avec les matrices.

Forme générale des matrices de transformation affine

En n dimensions, la transformation s’écrit :

où

  • A gouverne la déformation de la forme (composante linéaire).

  • b règle le déplacement (translation)

La condition d’inversibilité est que la matrice A soit inversible. En clair : si A écrase tous les points sur une droite (perte de rang), on ne peut pas revenir en arrière de manière unique.

Coordonnées homogènes et représentation matricielle augmentée

Les translations ne peuvent pas être représentées par une matrice (n × n) agissant sur x seul. Les coordonnées homogènes résolvent ce point en ajoutant une coordonnée supplémentaire.

On représente un point 2D ((x, y)) par ((x, y, 1)).

Alors une transformation affine 2D devient une matrice 3×3 :

2D affine transformation using homogeneous coordinates (3×3 matrix). Source: Author

Transformation affine 2D en coordonnées homogènes (matrice 3×3). Source : auteur

Atouts :

  • La composition se ramène à une multiplication (uniquement des multiplications de matrices).
  • Pipelines optimisés (très utilisés dans les bibliothèques graphiques et de vision)
  • Gestion homogène de la translation, rotation, mise à l’échelle et cisaillement

Types de transformations affines

La plupart des transformations affines utilisées en pratique se composent de quelques opérations récurrentes. 

Translation dans les transformations affines

La translation déplace chaque point du même vecteur : T(x)=x+b

La forme homogène en 2D s’écrit :

Translation as a homogeneous transformation matrix (2D). Source: Author

Translation sous forme de matrice homogène (2D). Source : auteur

Cette forme est utilisée en graphisme (déplacer des objets), en robotique (changer de repère) et en vision (alignement d’images).

Transformations d’échelle : uniforme et non uniforme

Mise à l’échelle uniforme : en 2D, on utilise le même facteur s dans toutes les directions. 

Uniform 2D scaling matrix. Source: Author

Matrice 2D de mise à l’échelle uniforme. Source : auteur

Mise à l’échelle non uniforme :

Non-uniform 2D scaling matrix. Source: Author

Matrice 2D de mise à l’échelle non uniforme. Source : auteur

En 3D, on utilise une matrice diagonale 3×3. Lors d’une mise à l’échelle, les droites et le parallélisme sont préservés, mais les distances changent (sauf si s=1).

Transformations de rotation en 2D et 3D

Rotation 2D d’angle θ :

2D rotation transformation by angle. Source: Author

Rotation 2D d’un angle donné. Source : auteur

En 3D, on fait tourner autour d’un axe (x, y ou z) avec les matrices correspondantes. En ajoutant une translation à une rotation, on reste dans l’affine (et l’on obtient un « mouvement rigide » si l’on ne fait que rotation + translation).

Cisaillements : explication

Le cisaillement « incline » les formes. Un cisaillement 2D selon x s’écrit :

2D x-shear representation. Source: Author

Représentation d’un cisaillement 2D selon x. Source : auteur

Et selon y :

2D y-shear representation. Source: Author

Représentation d’un cisaillement 2D selon y. Source : auteur

Les cisaillements sont fréquents en typographie, pour des déformations visuelles et des effets proches de la perspective (la véritable perspective relève toutefois du projectif, pas de l’affine). 

Réflexions en géométrie affine

Les réflexions par rapport à des axes ou plans passant par l’origine sont linéaires (et donc affines).

Réflexion 2D par rapport à l’axe x :

2D reflection over the x-axis. Source: Author

Réflexion 2D par rapport à l’axe x. Source : auteur

Par rapport à l’axe y :

2D reflection over the y-axis. Source: Author

Réflexion 2D par rapport à l’axe y. Source : auteur

Les réflexions changent l’orientation et sont utiles pour analyser des symétries, reconnaître des motifs et traiter des formes géométriques.

Composer et inverser des transformations affines

Dans les systèmes réels, vous utilisez rarement une seule transformation : vous les enchaînez.

Composer plusieurs transformations affines

Supposons :

et

Alors :

L’ordre compte. Faire d’abord une rotation puis une translation n’est pas équivalent à l’inverse. Les translations sont « capturées » par la matrice suivante.

Repère mémo :

  • En matrices homogènes, la composition est une multiplication de matrices
  • La dernière transformation appliquée se place à gauche dans le produit.

Inverse d’une transformation affine : calcul et usages

Pour

si A est inversible :

En vision, on utilise souvent cela : on reporte les pixels de sortie vers les pixels d’entrée (mappage inverse) pour éviter les « trous ».

Transformations linéaires vs affines

Une transformation affine, c’est « une transformation linéaire à laquelle on ajoute un décalage ».

Différences clés entre transformations linéaires et affines

Une transformation linéaire L(x)=Ax doit vérifier :

  • L(0)=0 (l’origine reste à l’origine)
  • L(x+y)=L(x)+L(y)
  • L(cx)=cL(x)

Une transformation affine T(x)=Ax+b :

  • ne doit pas nécessairement envoyer 0 sur 0
  • garde les droites et le parallélisme
  • agit linéairement une fois la translation isolée

Toute application linéaire est affine (en posant b=0), mais l’inverse est faux : toute translation non nulle brise la linéarité.

Les transformations affines comme linéaire plus translation

On peut réécrire :

comme « faire la partie linéaire (Ax), puis ajouter la translation (b) ». 

Vous connaissez déjà la version 1D via (y=mx+c). C’est aussi pourquoi les applications affines sont au cœur des réseaux de neurones : une couche dense calcule (Wx+b), une application affine, avant d’appliquer la non-linéarité. 

L’infographie et la vision par ordinateur utilisent massivement les transformations affines.

Transformations affines en infographie et vision par ordinateur

C’est ici que les transformations affines cessent d’être abstraites et deviennent réellement utiles.

Transformation et déformation d’images avec des transformations affines

En traitement d’images, on les utilise pour :

  • la rotation et le redimensionnement
  • la translation (déplacement d’images)
  • la correction d’inclinaison (cisaillement)
  • l’alignement/l’enregistrement (appariement d’images)

Deux idées d’implémentation importantes :

  • Mappage direct (forward mapping) : on projette chaque pixel d’entrée vers la sortie. Cela peut créer des trous.
  • Mappage inverse (inverse mapping) : pour chaque pixel de sortie, on remonte vers sa position d’origine ; en général, c’est préférable.

L’interpolation est cruciale, car les coordonnées mappées ne tombent pas souvent sur des pixels entiers. Méthodes courantes :

  • Plus proche voisin : le plus rapide, aspect en « blocs »
  • Bilinéaire : plus lisse, souvent par défaut
  • Bicubique : encore plus lisse, mais plus coûteux

Transformations affines en 3D et rendu

Elles sont partout en 3D :

  • transformations de modèle (objet local → monde)
  • transformations de vue (monde → caméra)
  • préparation de la projection (la partie affine précède l’étape projective)

Point subtil : en mise à l’échelle non uniforme, les normales de surface ne se transforment pas comme les points. Pour un éclairage correct, on utilise souvent l’inverse-transposée de la partie linéaire pour les normales.

Transformations affines en robotique

La robotique, c’est l’omniprésence des systèmes de coordonnées.

Les transformations affines relient :

  • repère base du robot ↔ repère du bras ↔ repère de l’effecteur
  • repère caméra ↔ repère monde
  • lidar ↔ coordonnées du véhicule

En localisation visuelle (odométrie visuelle, par ex.), les petits mouvements entre images peuvent souvent être approchés localement par de l’affine dans l’espace image, ce qui aide au suivi et à l’estimation du mouvement. 

Changement de repère et normalisation des données

En apprentissage automatique, de nombreux redimensionnements de variables sont affines :

  • Min-max : (x' = αx + β)
  • Standardisation : (x' = (x-μ)/σ) (également affine)

C’est crucial, car de nombreux modèles (surtout ceux basés sur le gradient) se comportent mieux quand les variables sont sur des échelles comparables.

Concepts avancés et théorie des transformations affines

Les transformations affines paraissent simples au premier abord, mais la théorie est riche, en particulier quand on s’intéresse aux invariants comme l’aire ou à des systèmes de coordonnées alternatifs.

Advanced Affine Transformation Concepts. Image Source: Napkin AI

Notions avancées sur les transformations affines. Source de l’image : Napkin AI

Géométrie affine et coordonnées barycentriques

Les coordonnées barycentriques expriment un point comme un mélange pondéré des sommets d’un triangle :

Ces coordonnées sont affines-invariantes : si vous transformez le triangle et le point par une application affine, les λi restent inchangés.

D’où leur large utilisation en : texturage, interpolation de maillages et analyse par éléments finis.

Transformations affines qui préservent les mesures (équiaires)

Une transformation affine préserve l’aire (2D) ou le volume (3D) lorsque :

Le déterminant de A indique de combien l’aire ou le volume change sous l’effet de la partie linéaire.

Si (|det(A)| > 1), l’espace s’agrandit ; s’il est inférieur à 1, il rétrécit. S’il est négatif, l’orientation change (comme pour une réflexion). Ces aspects sont essentiels en rendu, simulations physiques et modélisation de déformations.

Similarités et isométries en géométrie affine

Relations :

  • Affine : (Ax+b) (cas général)
  • Similarité : mise à l’échelle + rotation + translation (préserve les angles, à un facteur d’échelle près)
  • Isométrie (rigide) : rotation + translation (préserve distances et angles)

Donc : isométries ⊂ similarités ⊂ transformations affines

Cette hiérarchie permet de choisir le bon modèle. Par exemple, si vous devez préserver les distances, l’affine est trop large.

Transformations projectives et extensions affines en dimension supérieure

Les transformations affines sont un sous-ensemble des transformations projectives. Les projectives modélisent la perspective, où des droites parallèles semblent se rencontrer à l’infini. Les affines ne peuvent pas le faire.

En coordonnées homogènes, les transformations projectives autorisent une dernière ligne plus générale que ([0,0,1]). Cette liberté supplémentaire produit les effets de perspective.

Les concepts affines s’étendent aussi aux dimensions supérieures, par exemple avec les transformations homogènes 4D en graphisme 3D.

Mettre en œuvre des transformations affines

Les transformations affines sont des « maths simples », mais leur mise en œuvre fait toute la différence.

Stabilité numérique et précision

Problèmes fréquents :

  • Matrices quasi singulières : si det(A) est proche de 0, l’inversion devient instable
  • Accumulation d’erreurs en virgule flottante : des compositions répétées dérivent
  • Extrêmes d’échelle : tailles très grandes ou très petites dégradent la précision

Bonnes pratiques :

  • Surveillez le nombre de condition (ou au moins |det(A)|) comme signal d’alerte.
  • Pour l’inversion, utilisez des bibliothèques stables comme NumPy ou Eigen.
  • Lors de longues chaînes (graphisme, robotique), ré-orthonormalisez régulièrement les matrices de rotation.

Implémentation GPU et traitement parallèle

Les transformations affines sont hautement parallélisables : chaque point ou pixel se transforme indépendamment. Idéal pour le SIMD et les kernels GPU.

C’est pourquoi les déformations d’images et les pipelines de rendu se prêtent si bien au GPU : beaucoup de multiplications et additions en parallèle.

Optimisations courantes : utiliser les opérations fusionnées multiply-add, traiter par lots, et limiter les transferts mémoire. 

Applications spécialisées et extensions

Les transformations affines sont « suffisamment rigides » pour de nombreuses tâches, et servent aussi de base à des modèles plus souples.

Transformations affines B-splines pour l’enregistrement non rigide

En morphométrie et en imagerie médicale, l’alignement purement affine n’est qu’une première étape. Après l’alignement grossier, des modèles de déformation à base de B-splines permettent des déformations lisses et non rigides tout en offrant des points de contrôle interprétables.

En image : l’affine redresse l’ensemble, les B-splines affinent les détails.

Invariance affine en reconnaissance de formes et vision

Beaucoup de systèmes de reconnaissance cherchent l’invariance affine pour reconnaître des objets malgré des changements de point de vue proches d’une transformation affine. 

Parmi les techniques :

  • extraction de caractéristiques invariantes affines (ou normalisation de patchs)
  • estimation de repères affines locaux autour des points-clés
  • descripteurs robustes au cisaillement et au changement d’échelle

Résultat : un appariement, un suivi et une recherche plus fiables.

Transformations affines en SIG et systèmes géodésiques

En SIG, on les retrouve pour le géoréférencement, l’alignement de couches issues de sources différentes, ou comme approximations locales de conversions de coordonnées.

Les transformations géodésiques réelles sont souvent plus complexes, mais les modèles affines servent fréquemment d’approximation locale ou d’étape dans une chaîne de traitement.

Bibliothèques logicielles pour les transformations affines 

Inutile de repartir de zéro : la plupart des écosystèmes offrent de très bons outils.

Implémenter des transformations affines en Python, C++ et Java

  • Python : NumPy pour l’algèbre matricielle ; OpenCV pour les déformations d’images ; SciPy pour les outils numériques. 
  • C++ : Eigen (algèbre linéaire), OpenCV (vision), GLM (maths pour le graphisme)
  • Java : Apache Commons Math, et des boîtes à outils de vision selon votre stack

Principe commun à tous les langages :

  1. Représenter les points sous forme de vecteurs
  2. Appliquer (Ax+b) (ou utiliser la matrice homogène correspondante)
  3. Composer par multiplications de matrices. 
  4. Inverser si nécessaire via (A-1)

Meilleurs outils et bibliothèques pour les transformations affines

Best Tools and Libraries for Affine Transformations. Image Source: Napkin AI

Meilleurs outils et bibliothèques pour les transformations affines. Source de l’image : Napkin AI

Outils largement utilisés :

  • OpenCV : warpAffine, getAffineTransform, estimateAffine2D (workflows de vision)
  • NumPy : opérations matricielles générales
  • Eigen : algèbre linéaire C++ haute performance
  • GLM / DirectXMath : bibliothèques mathématiques orientées graphisme
  • GDAL / PROJ (SIG) : transformations de coordonnées et pipelines géospatiaux

Choisissez selon votre domaine : OpenCV pour l’image, GLM pour le graphisme, GDAL/PROJ pour le SIG.

Autres perspectives sur les transformations affines

Entendre la même idée sous un autre angle peut aider à la clarifier.

Définitions alternatives : applications affines et fonctions affines

On peut définir une application affine comme une fonction qui préserve la structure des combinaisons affines :

Cette formulation n’impose pas d’origine particulière — fidèle à « l’esprit » de la géométrie affine — et montre immédiatement que les droites sont envoyées sur des droites.

Transformations affines et formule (y = mx + b)

Si les transformations affines vous paraissent abstraites, ramenez-les à ce que vous connaissez : (y=mx) est linéaire (passe par l’origine), (y=mx+b) est affine (même pente, plus un décalage).

En dimension supérieure, m devient une matrice A, mais l’histoire reste la même : action linéaire, plus déplacement.

Conclusion

Une transformation affine, en allant à l’essentiel, c’est ceci : « Je garde votre monde fait de droites et d’arêtes parallèles, mais je ne garantis pas les angles. »

Si vous raisonnez en matrices et systèmes linéaires, explorez Linear Algebra for Data Science in R et nos tutoriels centrés sur les matrices, dont Row Echelon Form Explained.

Pour vous lancer en vision par ordinateur, des projets comme Food Image Classification with Hugging Face et des cours comme Working with Hugging Face sont une bonne étape suivante.

Vikash Singh

Auteur

Vikash Singh

Professionnel chevronné de la science des données, de l'intelligence artificielle, de l'analyse et de la stratégie des données.

FAQs

Qu’est-ce qu’une transformation affine ?

Une transformation affine applique T(x)=Ax+b, où A est une transformation linéaire et b une translation. Elle unifie rotation, mise à l’échelle, cisaillement, réflexion et décalage dans un même cadre.

En quoi une transformation affine diffère-t-elle d’une transformation linéaire ?

Une transformation linéaire, notée L(x)=Ax, doit envoyer l’origine sur elle-même. Une transformation affine inclut une translation (b≠0), ce qui déplace l’origine.

Quelles propriétés géométriques sont préservées par une transformation affine ?

Les transformations affines préservent les droites, la colinéarité et le parallélisme, donc la « structure en lignes ». Elles conservent aussi les rapports de distances le long d’une même droite (par exemple, les milieux restent des milieux).

Quelles propriétés ne sont pas préservées ?

Les distances et les angles changent généralement, ce qui peut allonger ou déformer les formes. L’aire et le volume peuvent aussi varier, sauf si la condition sur le déterminant est satisfaite.

La mise à l’échelle des variables en machine learning est-elle une transformation affine ?

Oui — la standardisation et le min-max sont des applications affines. Elles modifient les coordonnées pour faciliter l’optimisation sans bouleverser les relations essentielles.

Sujets

Contenus associés