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.

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.
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.
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.
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.
Les transformations affines préservent plusieurs relations géométriques « structurelles », tout en autorisant l’étirement ou le gauchissement des formes.

Propriétés préservées par une transformation affine. Source de l’image : Napkin AI
Préservées :
- Colinéarité : si des points sont alignés avant, ils restent alignés après.
- Parallélisme : les droites parallèles restent parallèles (crucial en graphisme et cartographie).
- Convexité : une forme convexe reste convexe.
- 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.
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.
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.
En n dimensions, la transformation s’écrit :

où
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 :

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
La plupart des transformations affines utilisées en pratique se composent de quelques opérations récurrentes.
La translation déplace chaque point du même vecteur : T(x)=x+b
La forme homogène en 2D s’écrit :

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).
Mise à l’échelle uniforme : en 2D, on utilise le même facteur s dans toutes les directions.

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

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).
Rotation 2D d’angle θ :

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 :

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

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 :

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

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.
Dans les systèmes réels, vous utilisez rarement une seule transformation : vous les enchaînez.
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.
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 ».
Une transformation affine, c’est « une transformation linéaire à laquelle on ajoute un décalage ».
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é.
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.
C’est ici que les transformations affines cessent d’être abstraites et deviennent réellement utiles.
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
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.
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.
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.

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.
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.
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.
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.
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.
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.
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.
Inutile de repartir de zéro : la plupart des écosystèmes offrent de très bons outils.
- 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 :
- Représenter les points sous forme de vecteurs
- Appliquer (Ax+b) (ou utiliser la matrice homogène correspondante)
- Composer par multiplications de matrices.
- Inverser si nécessaire via (A-1)

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.
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.
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.
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.
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 :
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
Asur un espace vectorielVest un ensemble de points muni d’une action libre et transitive deV. Concrètement : les différences de points vivent dansV, 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ù :
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 ?
Propriétés préservées par une transformation affine. Source de l’image : Napkin AI
Préservées :
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) :
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ù
Agouverne la déformation de la forme (composante linéaire).brè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 :
Transformation affine 2D en coordonnées homogènes (matrice 3×3). Source : auteur
Atouts :
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 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.
Matrice 2D de mise à l’échelle uniforme. Source : auteur
Mise à l’échelle non uniforme :
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 θ :
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 :
Représentation d’un cisaillement 2D selon x. Source : auteur
Et selon y :
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 :
Réflexion 2D par rapport à l’axe x. Source : auteur
Par rapport à l’axe y :
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 :
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 :
Une transformation affine T(x)=Ax+b :
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 :
Deux idées d’implémentation importantes :
L’interpolation est cruciale, car les coordonnées mappées ne tombent pas souvent sur des pixels entiers. Méthodes courantes :
Transformations affines en 3D et rendu
Elles sont partout en 3D :
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 :
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 :
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.
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 :
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 :
Bonnes pratiques :
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 :
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
Principe commun à tous les langages :
Meilleurs outils et bibliothèques pour les transformations affines
Meilleurs outils et bibliothèques pour les transformations affines. Source de l’image : Napkin AI
Outils largement utilisés :
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.