Corso
Una trasformazione affine è un processo che sposta i punti nello spazio in nuovi punti applicando una trasformazione lineare e uno spostamento, chiamato traslazione. Puoi ruotare, scalare, deformare (shear), riflettere e poi far scorrere tutto, e le linee rette resteranno rette.
Le trasformazioni affini sono onnipresenti perché catturano un'ampia varietà di modifiche geometriche che mantengono la geometria di un oggetto pur essendo economiche da calcolare.

Applicazioni diverse delle trasformazioni affini. Fonte immagine: Napkin AI
L'idea è nata quando matematici come Leonhard Euler e August Ferdinand Möbius cercavano di capire quali proprietà restano invarianti anche quando altre cose cambiano.
Oggi è una parte chiave del mondo digitale, alimentando tutto dal CSS di una pagina web all'imaging medico più complesso.
Cosa Sono le Trasformazioni Affini?
Le trasformazioni affini stanno a metà tra “algebra lineare pura” e “geometria del mondo reale”. Mantengono la matematica pulita consentendo le traslazioni, cosa che le applicazioni lineari da sole non possono fare.
Capire spazi e trasformazioni affini
Uno spazio vettoriale ha un punto speciale chiamato origine (anche se non lo disegni, concettualmente c'è). In uno spazio vettoriale, i vettori si possono sommare e scalare, e c'è un distinto “vettore nullo”.
Uno spazio affine assomiglia a uno spazio vettoriale senza un'origine scelta. Puoi comunque parlare di:
- punti (posizioni)
- vettori di spostamento tra punti (per es., “vai da P a Q”)
- aggiungere un vettore a un punto (spostare il punto di quel vettore)
Ma non puoi sommare due punti in modo significativo, perché la somma di punti dipende dalla scelta di un'origine.
Formalmente, uno spazio affine A su uno spazio vettoriale V è un insieme di punti con un'azione libera e transitiva di V. Praticamente: le differenze tra punti vivono in V, ma i singoli punti no.
Una trasformazione affine è un'applicazione tra spazi affini che preserva le combinazioni affini (ne parleremo tra poco) e, geometricamente, preserva le linee rette e il parallelismo.
Formula di trasformazione affine: definizione usando spazi vettoriali
In coordinate, una trasformazione affine ha la forma:

Trasformazione affine in forma matriciale.
Dove:
- x ∈ Rn è il punto di input (come vettore colonna)
- A ∈ Rn×n è una matrice che rappresenta la parte lineare (rotazione, scalatura, shear, riflessione, combinazioni)
- b ∈ Rn è un vettore che rappresenta la traslazione
Questa struttura “lineare + costante” è il motivo per cui le mappe affini sono così popolari in ingegneria e informatica: sono espressive ma ancora veloci e stabili da applicare.
Proprietà Chiave delle Trasformazioni Affini
Le trasformazioni affini preservano diverse relazioni geometriche “strutturali”, consentendo al contempo che le forme si allunghino o si deformino.
Quali proprietà sono preservate nelle trasformazioni affini?

Proprietà preservate nella trasformazione affine. Fonte immagine: Napkin AI
Preservate:
- Collinearità: se i punti giacciono sulla stessa retta prima, giacciono su una retta dopo.
- Parallelismo: le rette parallele restano parallele (questo è fondamentale in grafica e cartografia).
- Convessità: una forma convessa resta convessa.
- Rapporti lungo una retta: se un punto divide un segmento in un certo rapporto, quel rapporto è preservato.
Un modo elegante per esprimerlo è tramite le combinazioni affini:

Le mappe affini preservano queste combinazioni.
Non preservate (in generale):
- Distanze
- Angoli
- Aree/volumi (a meno che non valgano condizioni speciali)
Infine, le trasformazioni affini sono chiuse per composizione: fare una trasformazione affine dopo un'altra è ancora una trasformazione affine.
Struttura di gruppo delle trasformazioni affini
Le trasformazioni affini formano un gruppo rispetto alla composizione (spesso chiamato gruppo affine, scritto Aff(n)).
La composizione funziona in modo pulito se

e

allora

Questa è ancora affine.
Nota sull'invertibilità: Ax+b è invertibile se A è invertibile (det(A)≠0). Allora:

Ottieni così un'algebra potente: costruisci trasformazioni complesse concatenando quelle semplici e invertile quando serve.
Matrice di Trasformazione Affine
Per calcolare in modo efficiente le trasformazioni affini, utilizziamo matrici—in particolare le coordinate omogenee, che facilitano le traslazioni in modo compatibile con le matrici.
Forma generale delle matrici di trasformazione affine
In n dimensioni, la trasformazione è la seguente:

dove
-
Agoverna l'alterazione della forma (componente lineare). -
bregola lo spostamento (traslazione)
Il requisito di invertibilità è che la matrice (A) sia invertibile. In parole semplici, significa che se (A) comprime tutti i punti su una retta (con conseguente diminuzione del rango), non può essere invertita in modo univoco.
Coordinate omogenee e rappresentazione con matrice aumentata
Le traslazioni non possono essere rappresentate da una matrice (n x n) che agisce su (x) da sola. Le coordinate omogenee risolvono questo problema introducendo una coordinata aggiuntiva.
Rappresenta un punto 2D ((x, y)) come ((x, y, 1)).
Allora una trasformazione affine 2D diventa una matrice 3×3:

Trasformazione affine 2D usando coordinate omogenee (matrice 3×3). Fonte: Autore
Vantaggi:
- La composizione si riduce alla moltiplicazione (serve solo la moltiplicazione tra matrici).
- Pipeline ottimizzate (le librerie di grafica e visione lo prediligono)
- Gestione coerente di traslazione, rotazione, scalatura e shearing
Tipi di Trasformazioni Affini
La maggior parte delle trasformazioni affini usate in pratica coinvolge una manciata di passaggi.
Traslazione nelle trasformazioni affini
La traslazione sposta ogni punto dello stesso vettore: T(x)=x+b
La forma omogenea 2D è rappresentata da:

Traslazione come matrice di trasformazione omogenea (2D). Fonte: Autore
Questa forma è usata in grafica (per spostare oggetti), robotica (per cambiare frame di riferimento) e visione (per l'allineamento di immagini).
Trasformazioni di scalatura: uniforme e non uniforme
Scalatura uniforme: In 2D, la scalatura uniforme usa lo stesso fattore (s) in tutte le direzioni:

Matrice di scalatura 2D uniforme. Fonte: Autore
Scalatura non uniforme:

Matrice di scalatura 2D non uniforme. Fonte: Autore
La scalatura 3D, invece, è come una matrice diagonale 3×3. Quando scali qualcosa, le linee rette e il parallelismo sono preservati, ma le distanze cambiano (a meno che s=1).
Trasformazioni di rotazione in 2D e 3D
Rotazione 2D di angolo (theta):

Trasformazione di rotazione 2D per angolo. Fonte: Autore
In 3D ruoti attorno a un asse (x, y o z) con le corrispondenti matrici. Se aggiungi una traslazione a una rotazione, resta affine (e diventa un “moto rigido” se fai solo rotazione e traslazione).
Shearing: trasformazioni di taglio spiegate
Lo shear “inclina” le forme. Uno shear lungo x in 2D è:

Rappresentazione di x-shear 2D. Fonte: Autore
Uno shear lungo y:

Rappresentazione di y-shear 2D. Fonte: Autore
Gli shear sono spesso usati nella tipografia, nelle deformazioni visive e in effetti che ricordano la prospettiva (anche se la prospettiva autentica è proiettiva, non affine).
Trasformazioni di riflessione in geometria affine
Quando rifletti rispetto ad assi o piani che passano per l'origine, si tratta di riflessione lineare (e quindi affine).
Riflessione 2D rispetto all'asse x:

Riflessione 2D rispetto all'asse x. Fonte: Autore
Sull'asse y:

Riflessione 2D rispetto all'asse y. Fonte: Autore
Le riflessioni cambiano l'orientamento e sono utili per analizzare la simmetria, riconoscere pattern e trattare la geometria.
Come Comporre e Invertire le Trasformazioni Affini
Nei sistemi reali, raramente usi una sola trasformazione; di solito le colleghi in sequenza.
Comporre più trasformazioni affini
Supponi che:

e

Allora:

L'ordine conta. Ruotare prima e poi traslare non è lo stesso che traslare prima e poi ruotare. Questo perché le traslazioni vengono “catturate” dalla matrice successiva.
Un modo utile per ricordarlo è:
- Se usi matrici omogenee, la composizione è la moltiplicazione tra matrici
- L'ultima trasformazione che applichi sta a sinistra nella moltiplicazione.
Trasformazioni affini inverse: calcolo e applicazioni
Per

se (A) è invertibile:

In visione artificiale questo è spesso usato: comunemente riporti i pixel di output ai pixel di input (mappatura inversa) per riempire i buchi.
Trasformazioni Lineari vs. Affini
Le trasformazioni affini sono “trasformazioni lineari con uno spostamento incorporato”.
Differenze chiave tra trasformazioni lineari e affini
Una trasformazione lineare - L(x)=Ax - deve soddisfare:
- L(0)=0 (l'origine resta all'origine)
- L(x+y)=L(x)+L(y)
- L(cx)=cL(x)
Una trasformazione affine T(x)=Ax+b:
- non deve mappare 0 in 0
- mantiene le linee rette e preserva il parallelismo
- agisce linearmente una volta tolta la traslazione
Ogni mappa lineare è affine (poni b=0), ma non tutte le mappe affini sono lineari (qualunque traslazione non nulla rompe la linearità).
Trasformazioni affini come lineare più traslazione
Puoi riscrivere:

come “esegui la parte lineare (Ax), poi aggiungi la traslazione (b)”.
Conosci già la versione 1D se hai mai visto (y=mx+c). È anche il motivo per cui le mappe affini sono spesso usate nelle reti neurali: un livello denso calcola (Wx+b), che è una mappa affine. Dopo, si introduce la non linearità.
La computer grafica e la computer vision usano le trasformazioni affini.
Trasformazioni Affini in Computer Grafica e Visione Artificiale
È qui che le trasformazioni affini smettono di essere astratte e iniziano a essere utili sul serio.
Trasformazione e warping di immagini con trasformazioni affini
Nel processing di immagini, le trasformazioni affini si usano per:
- rotazione e ridimensionamento
- traslazione (spostamento di immagini)
- correzione dell'inclinazione (shear)
- allineamento/registrazione (match tra immagini)
Due idee importanti di implementazione:
- Mappatura forward: significa prendere ogni pixel di input e trasferirlo in avanti. Questo può creare spazi/buchi.
- Mappatura inversa: per ogni pixel di output, mappa all'indietro per trovare da dove proviene; di solito è l'opzione migliore.
L'interpolazione è importante perché le coordinate mappate spesso non cadono su pixel interi. Alcuni metodi comuni sono:
- Nearest neighbor: il più veloce, ma con effetto a blocchi
- Bilineare: più morbido, di solito il default
- Bicubica: ancora più morbida ma più costosa
Trasformazioni affini nella grafica 3D e nel rendering
Le trasformazioni affini sono ovunque nella grafica 3D:
- transform del modello (locale oggetto → mondo)
- transform della vista (mondo → camera)
- preparazione alla proiezione (la parte affine accade prima del passo proiettivo)
Un punto sottile ma importante: quando la scalatura non è uniforme, le normali di superficie non cambiano sempre come i punti. Per garantire un'illuminazione corretta, le pipeline di rendering usano comunemente l'inversa trasposta della parte lineare per le normali.
Trasformazioni affini in robotica
La robotica è essenzialmente l'onnipresenza dei sistemi di coordinate.
Le trasformazioni affini mappano:
- frame base del robot ↔ frame del braccio ↔ frame dell'end-effector
- frame della camera ↔ frame mondo
- lidar ↔ coordinate del veicolo
Nella localizzazione basata sulla visione (per es., odometria visiva), i piccoli movimenti tra frame possono spesso essere approssimati localmente come affini nello spazio immagine, il che è utile per monitorare e stimare il movimento.
Mappatura degli spazi di coordinate e normalizzazione dei dati
Nel machine learning, lo scaling delle feature è spesso affine:
- Min-max scaling: (x' = alpha x + beta)
- Standardizzazione: (x' = (x-μ)/σ) (anch'essa affine)
Questo è importante perché molti modelli (soprattutto quelli basati sul gradiente) funzionano meglio quando le feature sono su scale simili.
Concetti e Teoria Avanzati sulle Trasformazioni Affini
Le trasformazioni affini sembrano semplici all'inizio, ma la teoria è profonda, soprattutto quando inizi a interessarti a invarianti come l'area o a sistemi di coordinate alternativi.
Concetti avanzati di trasformazione affine. Fonte immagine: Napkin AI
Geometria affine e coordinate baricentriche
Le coordinate baricentriche esprimono un punto come una miscela pesata dei vertici del triangolo:

Queste coordinate sono affini-invarianti, il che significa che se cambi in modo affine il triangolo e il punto, λi resta la stessa.
Ecco perché le coordinate baricentriche sono ampiamente usate in: texture mapping, interpolazione di mesh e analisi agli elementi finiti.
Trasformazioni affini a misura preservata ed equiareali
Una trasformazione affine preserva area (2D) o volume (3D) quando:

Il determinante di A ti dice di quanto cambiano area o volume quando si applica l'elemento lineare.
Se (|det(A)| > 1), lo spazio si ingrandisce; se è minore di uno, si rimpicciolisce. Se è negativo, l'orientamento cambia (come in una riflessione). Questi aspetti sono vitali per grafica, simulazioni fisiche e modellazione di deformazioni.
Trasformazioni di similitudine e isometrie nella geometria affine
Relazioni:
- Affine: (Ax+b) (caso generale)
- Similitudine: scalatura + rotazione + traslazione (mantiene gli angoli, a scala costante)
- Isometria (rigida): rotazione + traslazione (mantiene distanze e angoli)
Quindi:isometrie ⊂ similitudini ⊂ trasformazioni affini
Questa gerarchia ti permette di scegliere il modello giusto per un problema. Per esempio, se devi mantenere le distanze, l'affine è troppo generale.
Trasformazioni proiettive ed estensioni affini in dimensioni superiori
Le trasformazioni affini sono un tipo di trasformazione proiettiva. Le trasformazioni proiettive possono modellare la prospettiva, come il modo in cui le linee parallele si incontrano in un punto di fuga. Le trasformazioni affini non possono farlo.
Nelle coordinate omogenee, le trasformazioni proiettive consentono una riga finale più generale rispetto a ([0,0,1]). Questa libertà aggiuntiva è ciò che produce gli effetti prospettici.
I concetti affini funzionano anche in dimensioni superiori, come le trasformazioni omogenee 4D nella grafica 3D.
Implementare le Trasformazioni Affini
Le trasformazioni affini sono “matematica facile”, ma il modo in cui le usi può fare la differenza sul risultato.
Stabilità numerica e precisione nelle trasformazioni affini
Problemi comuni:
- Matrici quasi singolari: se (det(A)) è vicino a 0, l'inversione diventa instabile
- Accumulo di errori in floating point: composizioni ripetute possono introdurre drift
- Estremi di scalatura: dimensioni estremamente grandi o piccole riducono la precisione.
Best practice:
- Come indicatore rapido, guarda il numero di condizionamento (o almeno |det(A)|).
- Per l'inversione, usa librerie stabili come NumPy ed Eigen.
- Quando devi eseguire molte operazioni in sequenza, come in grafica o robotica, ri-ortonormalizza le matrici di rotazione.
Implementazione su GPU e elaborazione parallela delle trasformazioni affini
Le trasformazioni affini sono altamente parallelizzabili: ogni punto o pixel cambia in modo indipendente. Questo le rende adatte a SIMD e kernel GPU.
Ecco perché i warping di immagini e le pipeline di rendering funzionano bene sulle GPU: possono eseguire molte moltiplicazioni e addizioni in parallelo.
Alcune ottimizzazioni comuni: usare operazioni fuse multiply-add, batch di trasformazioni e ridurre i trasferimenti di memoria.
Applicazioni ed Estensioni Specializzate delle Trasformazioni Affini
Le trasformazioni affini sono “abbastanza rigide” per molti compiti e possono anche essere usate come base per modelli più flessibili.
Trasformazioni affini con B-spline per la registrazione non rigida
In morfometria e imaging medico, l'allineamento puramente affine è solo il primo passo. Dopo l'allineamento grossolano, i modelli di deformazione basati su B-spline consentono di ottenere warping non rigidi e continui mantenendo intelligibili i punti di controllo.
Pensa così: l'affine raddrizza l'immagine nel complesso, le B-spline si occupano delle piccole pieghe.
Invarianza affine nel pattern recognition e nella computer vision
Molti sistemi di riconoscimento cercano di essere invarianti affini, così che gli oggetti possano essere riconosciuti anche quando il punto di vista cambia in modo simile a una trasformazione affine.
Le tecniche includono:
- uso di feature invarianti affini (o normalizzazione delle patch)
- stima di frame affini locali per i keypoint
- progettazione di descrittori robusti a skew e scala
Questo rende più affidabili operazioni come matching, tracking e retrieval.
Trasformazioni affini nei GIS e nei sistemi di coordinate geodetiche
Nei GIS, le trasformazioni affini compaiono nel georiferimento delle mappe, nell'allineamento di layer da fonti diverse o nelle approssimazioni locali di conversioni di coordinate.
Le trasformazioni geodetiche reali possono essere più complicate, tuttavia i modelli affini sono spesso usati come approssimazioni locali o come parte di una pipeline più ampia.
Librerie Software per le Trasformazioni Affini
Non devi partire da zero: la maggior parte degli ecosistemi offre un buon supporto.
Implementare trasformazioni affini in Python, C++ e Java
- Python: NumPy per l'algebra delle matrici; OpenCV per i warping di immagini; SciPy per strumenti numerici.
- C++: Eigen (algebra lineare), OpenCV (visione), GLM (matematica per la grafica)
- Java: Apache Commons Math e toolkit di visione a seconda dello stack
Idea di base comune ai linguaggi:
- Rappresenta i punti come vettori
- Applica (Ax+b) (o la moltiplicazione con matrice omogenea)
- Usa moltiplicazioni tra matrici per comporre trasformazioni.
- Inverti quando serve usando (A-1)
Migliori strumenti e librerie per le trasformazioni affini

Migliori strumenti e librerie per le trasformazioni affini. Fonte immagine: Napkin AI
Strumenti ampiamente usati:
- OpenCV: warpAffine, getAffineTransform, estimateAffine2D (workflow di visione)
- NumPy: operazioni con matrici in generale
- Eigen: algebra lineare C++ ad alte prestazioni
- GLM / DirectXMath: librerie matematiche orientate alla grafica
- GDAL / PROJ (GIS): trasformazioni di coordinate e pipeline geospaziali
Scegli in base al dominio: OpenCV per immagini, GLM per grafica, GDAL/PROJ per GIS.
Prospettive Alternative sulle Trasformazioni Affini
Sentire la stessa idea spiegata in modo diverso a volte aiuta a chiarire.
Definizioni alternative: mappe affini e funzioni affini
Una mappa affine può essere definita come una funzione che preserva l'integrità delle combinazioni affini:
Questa formulazione non si lega a un'unica origine, il che è estremamente nello “spirito” della geometria affine. Chiarisce anche subito che le linee vanno in linee.
Trasformazioni affini e la formula (y = mx + b)
Se le trasformazioni affini ti sembrano astratte, ricollegale a ciò che già conosci: (y=mx) è lineare (passa per l'origine) e (y=mx+b) è affine (stessa pendenza, con uno shift).
In dimensioni superiori, (m) diventa una matrice (A), ma la storia è la stessa: agisce linearmente e poi sposta.
Conclusione
Se togli tutto il superfluo, le trasformazioni affini si riducono davvero a questo: “Mantengo un mondo fatto di linee rette e bordi paralleli, ma non posso promettere che gli angoli restino gli stessi”.
Se stai ragionando in termini di matrici e sistemi lineari, dai un'occhiata a Linear Algebra for Data Science in R e ai tutorial che si concentrano sulle matrici, tra cui Row Echelon Form Explained.
Se vuoi entrare nella computer vision, progetti come Food Image Classification with Hugging Face e corsi come Working with Hugging Face sono un buon passo successivo.
Professionista esperto in data science, intelligenza artificiale, analytics e strategia dei dati.
FAQ
Che cos'è una trasformazione affine?
Una trasformazione affine mappa i punti usando T(x)=Ax+b, dove A è una trasformazione lineare e b è una traslazione. Include rotazione, scalatura, shear, riflessione e spostamento, tutto in un unico framework.
In che cosa una trasformazione affine è diversa da una trasformazione lineare?
Una trasformazione lineare, scritta come L(x)=Ax, deve mandare l'origine in sé stessa. Una trasformazione affine include la traslazione (b≠0), il che significa che può spostare l'origine.
Quali proprietà geometriche sono preservate nella trasformazione affine?
Le trasformazioni affini preservano le linee rette, la collinearità e il parallelismo, mantenendo intatta la "struttura a linee". Preservano anche i rapporti di distanza lungo la stessa retta (per esempio, i punti medi restano punti medi).
Quali proprietà non sono preservate?
In generale, distanze e angoli cambiano, quindi le forme possono allungarsi o piegarsi. Anche area e volume possono cambiare, a meno che non valga la condizione sul determinante.
Lo scaling delle feature nel machine learning è una trasformazione affine?
Sì: standardizzazione e min-max scaling sono esempi di mappe affini. Modificano le coordinate per facilitare l'ottimizzazione senza alterare troppo le relazioni.



