Site icon Meccanismo Complesso

PiCamera & Python: aggiungere effetti alle immagini

PiCamera Python Add filter effects to images
meccanismo-complesso-picamera-python-add-filter-effects-to-images-ita

Eccoci giunti ad un altro articolo della serie PiCamera & Python. In questo articolo vedremo come applicare degli effetti alle immagini acquisite tramite webcam.

[wpda_org_chart tree_id=33 theme_id=50]

Passi Preliminari: acquisire un’immagine

Prima di cominciare, è necessario partire con il passo preliminare, la semplice acquisizione di una foto tramite la webcam PiCamera. Presupponendo che abbiate già letto gli altri articoli, ecco qui il codice di partenza. Questo codice ci permetterà di acquisire un’immagine, scattando una foto e salvandola come un file JPG sulla directory corrente.

Apriamo un editor di testo, e creiamo un file chiamato effects01.py.

nano effects01.py

scriviamo all’interno il codice seguente:

from picamera import PiCamera
import time

camera = PiCamera()
camera.resolution = (2592, 1944)

camera.start_preview()
time.sleep(5)
camera.capture('image01.jpg')
camera.stop_preview()

Eseguendo il programma non avremo altro che un’immagine scattata dalla webcam.

Articolo suggerito:

piCamera 8Mp

Applicare gli effetti

Adesso possiamo cominciare ad applicare i vari effetti sulle immagini in acquisizione.

Esistono infatti una buona serie di effetti applicabili alle immagini già impostati all’interno della libreria Picamera di Python. L’unica cosa che dobbiamo fare è impostarli all’interno del codice precedente utilizzando il parametro image_effect dell’oggetto Picamera.

Cominciamo con un effetto chiamato colorswap. Aggiungiamo quindi dopo lo start_preview() la seguente dichiarazione.

camera.image_effect = 'colorswap'

ed otterremo un’immagine con i colori sostituiti con il loro complementare.

Per prendere dimestichezza con tutti gli effetti presenti nella libreria picamera, suggerisco di utilizzare il programma seguente.

Aprite un editor di testo e create un file chiamato effects02.py.

nano effects02.py

e scrivete il codice seguente:

from picamera import PiCamera
import time

camera = PiCamera()
camera.resolution = (2592, 1944)

camera.start_preview()
time.sleep(5)

for effect in camera.IMAGE_EFFECTS:
    filename = "image_%s.jpg" % effect
    camera.image_effect = effect
    camera.capture(filename)
    time.sleep(1)
camera.stop_preview()

Questo programma passerà in rassegna ogni effetto disponibile nella libreria picamera. Effetto dopo effetto, Raspberry scatterà una foto applicando ogni volta, un effetto diverso.

Nella directory corrente vi troverete una serie di file image con suffisso il nome dell’effetto.

Ecco in rassegna alcuni effetti molto interessanti

Giocare su alcune regolazioni

Esistono inoltre alcune particolari regolazioni che permettono di giocare sull’immagine in concomitanza con gli effetti precedenti.

Per esempio è possibile regolare il bilanciamento dei bianchi tramite il parametro awb_mode. Questo parametro ha una serie di opzioni che si possono selezionare ed hanno il nome del tipo di sorgente luminosa “simulata” da applicare al soggetto della foto.

Ecco l’elenco delle opzioni: off, auto, sunlight, cloudy, shade, tungsten, fluorescent, flash e horizon.

Quindi basterà aggiungere la seguente dichiarazione prima di acquisire una foto per impostare la modalità di bilanciamento di bianchi (Se vogliamo sunlight)

camera.awb_mode = ‘sunlight’

Se eseguiamo il programma combinando il bilanciamento dei bianchi e gli effetti si possono avere diversi effetti gradevoli. Ecco un esempio nella figura seguente.

Un altro tipo di regolazione su cui possiamo giocare è l’esposizione. Cioè i tempi di esposizione possono giocare un ruolo importante sul rendimento dell’immagine acquisita. L’effetto di chiaro-scuro varierà molto a seconda della modalità di esposizione selezionata.

Per regolare l’esposizione si deve definire il parametro exposure_mode assegnandogli alcune opzioni disponibili.

Ecco l’elenco delle opzioni: off, auto, night, nightpreview, backlight, spotlight, sports, snow, beach, verylong, fixedfps, antishake, fireworks.

Anche in questo caso si può assegnare l’opzione ad exposure_mode nel codice appena prima dell’acqusizione dell’immagine.

picamera.exposure_mode = ‘beach’

Se fate varie prove, vedrete come al variare della modalità si avranno diversi effetti di chiaro-scuro, che se abbinate ad un particolare effetto, possono dare risultati gradevoli.

 Conclusioni

In questo articolo abbiamo visto come applicare vari effetti all’immagine in acquisizione per ottenere immagini artistiche o almeno interessanti ;). Inoltre abbiamo visto come giocare con alcune regolazioni per modificare gli effetti sulle immagini. Spero che quello che oggi abbiate visto vi possa ispirare per ulteriori approfondimenti….e chissà…mischiare un po’ di arte alla tecnica fa sempre bene.

Exit mobile version