TheJoe.it Into the (open) source

19apr/122

Grafica: l’interpolazione per ridimensionare le immagini con Gimp

gimp

Ispirato dai commenti ad un mio vecchio articolo, scrivo una breve guida per chiarire ogni dubbio sull'interpolazione grafica. Il breve articolo di oggi parlerà solo di interpolazione dal punto di vista dei software grafici, ma va comunque precisato che l'interpolazione è prima di tutto un metodo per individuare nuovi punti sul piano cartesiano partendo da un insieme di punti dati nell'ipotesi che tutti i punti si possano riferire ad una funzione f(x) di una data famiglia di funzioni di una variabile reale.

Per saperne di più...

Tratto da Wikipedia.
Nelle attività scientifiche e tecnologiche, e in genere negli studi quantitativi di qualsiasi fenomeno, accade molto spesso di disporre di un certo numero di punti del piano ottenuti con un campionamento o con apparecchiature di misura e di ritenere opportuno individuare una funzione che passi per tutti i punti dati o almeno nelle loro vicinanze (vedi curve fitting).

Per farla breve, dati un insieme di punti apparentemente casuali, con l'interpolazione si cerca di stabilire il grado di casualità fra i punti dati, e di crearne degli altri con lo stesso grado di casualità. In molti saranno perplessi nel vedermi riportare queste informazioni sull'analisi matematica, ma l'interpolazione c'entra con la grafica più di quanto si sospetti e viene chiamato "antialias" (o antialiasing).

Poniamo il caso di dover ingrandire un'immagine. Da un certo numero di pixel, relazionati dai colori propri e dei prossimi, il software dovrà cercare altri pixel da interporre ai primi per ottimizzare le dimensioni dell'immagine secondo le preferenze dell'utente. Se non venisse usata l'interpolazione dal programma grafico le immagini ingrandite sarebbero vistosamente scalettate. Lo stesso procedimento accade quando riduciamo la dimensione dell'immagine. Il programma di grafica dovrà fare una sintesi dei punti interessanti (di solito si tiene conto del contrasto) e rimuovere parte dell'informazione.

L'interpolazione però non è una procedura unica, ne esistono diverse modalità. Nello screenshot che segue ne vediamo alcuni disponibili di default in Gimp. Ne esistono pochi altri, ma questi sono gli unici inseriti nel core di Gimp.

La scelta di default è la "Cubica", un po' più esoso come aggravio della CPU, ma sicuramente offre la resa migliore.

  • "Nessuna": copia semplicemente i pixel originali negli spazi attigui. E' il metodo più semplice, più veloce ma meno preciso. L'immagine finale sarà vistosamente scalettata.
  • "Lineare": calcola la media fra i quattro pixel confinanti agli originali. Offre un buon compromesso fra prestazioni e precisione. Questo metodo viene anche chiamato "Bilineare".
  • "Cubica": calcola la media fra gli otto pixel attigui. E' certamente il metodo più lento, quello che richiede più lavoro al computer, ma il risultato è migliore. Viene anche chiamata "Bicubica".
  • "Sinc (Lanczos3)": è il procedimento che richiede gli sforzi maggiori alla CPU, usa la funzione matematica del seno cardinale e il risultato è qualitativamente il migliore.

Poniamo il caso che la nostra immagine sia la seguente:

Di seguito raddoppierò le dimensioni con i diversi metodi di interpolazione.

Nessuna

Lineare

Cubica

Sinc (Lanczos3)

Senza troppe spiegazioni è chiara a tutti la differenza (è meglio percepibile aprendo le immagini a tutto schermo), e teniamo presente che quelle prese in esempio sono immagini di piccole dimensioni, i difetti vengono amplificati facilmente. Gli stessi algoritmi sono utilizzabili per il ridimensionamento inverso.

About

Mantengo questo blog a livello amatoriale dal 2009. Sono appassionato di grafica, tecnologia, software Open Source. Fra i miei articoli non sarà difficile trovarne circa la musica, ed alcuni di riflessioni personali, ma preferisco indirizzare la linea del blog principalmente verso la tecnologia. Per informazioni contattami.

Commenti (2) Trackback (0)
  1. Ciao the joe , ecco vedi non sapevo proprio il significato dei vari metodi di interpolazione , era una grande pecca che ai colmato egregiamente , saluti Fabri.
    Anche io utilizzo linux con grande piacere e sono appassionato di grafica.
    Ciao

    • Ciao fabrizio, è bello sapere di non essere soli nel mondo a fare grafica con linux e software open source, ed è ancora più bello sapere di essere stato d’aiuto a qualcuno.

      Ho fatto un giro sul tuo blog, non sono un luminare, ma se posso ti darei qualche consiglio:
      – i tuoi tutorial sono originali, e non la solita scopiazzata e gli effetti che cerchi di ricreare sono interessanti. Senza immagini però è un po’ difficile seguire il procedimento, quindi cerca di integrare i tuoi articoli con immagini passo-passo, altrimenti ci si perde al terzo passaggio.
      – il primo articolo è di maggio, significa che sei online già da un po’. Cerca di integrare il blog con dei collegamenti, così com’è è solo una lista poco appetibile e corri il rischio che la gente scappi per qualche altro sito.

      Se ti capita passa a trovarmi ancora, ho in programma qualche altro tutorial per gimp (è parecchio che non ne scrivo uno). Ciao!


Leave a comment

Ancora nessun trackback.