Manipolazione immagini con Python – Parte 1

In questo video ho registrato il procedimento per scrivere alcune funzioni in jython (la variante java-based del linguaggio python).

Tutte le funzioni sono orientate alla manipolazione di immagini ed effettueremo modifiche tipo la diminuzione dei rossi, il negativo, il bianco e nero, l’effetto tramonto, il mirror e il flip. Tutte quelle operazioni che di solito siamo abituati a fare con dei programmi di editor immagini tipo photoshop.

Lo scopo della lezione però è quello di farlo senza l’aiuto di un programma esterno creandoci noi le nostre funzioni che fanno tutto questo.

Per scrivere il codice ci siamo serviti di JES (Jython Environment for Students), in altre parole un editor incluso di command area fatto appositamente per chi vuole imparare questo linguaggio di programmazione.

Di supporto al video di seguito faro dei commenti su ogni funzione e cercherò di essere più sintetico possibile.

Manipolazione immagini con jython

Iniziamo col dire che in questo video ho preferito dichiarare staticamente l’immagine da modificare con una variabile chiamata Pict, ma si poteva benissimo usare la funzione di jython pickAFile() e selezionare ogni volta l’immagine da prendere in considerazione.

    • decreaseRed() serve a diminuire i rossi nell’immagine del 50%. Per farla ci siamo serviti di un ciclo for che pesca tutti i pixel presenti, gli assegna il nome p ad ognuno e e moltiplica per 0.5 tutte le componenti red dei pixel p diminuendo così il colore rosso del 50%.
    • negative() consiste nell’ottenere il negativo di un’immagine. La parola negativo dovrebbe già indicarci la via da seguire, con un altro ciclo for abbiamo preso tutti i pixel, da ognuno abbiamo letto il valore dei tre colori fondamentali RGB (red, green, blue) ed abbiamo creato dei nuovi pixel sottraendo le variabili red, green, blue ai valori massimi che un pixel può assumere (255) ottenendo cosi l’effetto negativo.
    • greyScale() di base sappiamo che i colori in scala di grigio sono quelli che assumono tutti e tre i valori RGB uguali, di conseguenza per ottenere questo effetto con un risultato soddisfacente abbiamo preso i valori RGB di ogni pixel li abbiamo sommati e poi divisi per 3 ottenendo così la media tra i tre. Questo valore ottenuto della media lo abbiamo poi assegnato come nuovo colore dei pixel sostituendolo al vecchio.
    • clearBlue() nulla di più facile che fare un ciclo che prende tutti i pixel e poi settare il valore Blue di quei pixel a 0.
    • makeSunset() per avere un effetto tramonto, ovviamente, dobbiamo aumentare la percentuale di rosso nell’immagine. Sempre grazie ad un ciclo for creiamo un oggetto p che rappresenta ogni singolo pixel dell’immagine ed aumentiamo il rosso moltiplicandolo per 1.3.
    • makeSunset2()ho creato anche una variante dell’effetto tramonto forse più adatta per questo effetto che invece di aumentare la percentuale di rossi, diminuisce quella di verdi e blue. Infine come esempio ho usato la funzione writePictureTo() che permette di salvare l’immagine modificata in un percorso da noi stabilito.

    Se ti è piaciuto questo articolo o ti è stato utile in qualche modo, lascia un commento, condividilo con i tuoi amici e seguimi sui social.

    2 risposte per “Manipolazione immagini con Python – Parte 1

    Lascia un commento

    Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

    Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.