Durante l’anno scolastico 2024/2025, la nostra classe 5C Informatica ha intrapreso, nelle ore di autonomia, un progetto volto a esplorare le potenzialità del linguaggio Python nell’elaborazione delle immagini digitali.
Cos’è Python?
Python è un linguaggio di programmazione semplice, accessibile e di alto livello. Grazie alla sua sintassi chiara e intuitiva è ideale per chi inizia a programmare, ma allo stesso tempo è abbastanza potente da supportare progetti complessi. Esistono numerose librerie, come Pillow, OpenCV e Matplotlib, che facilitano lo sviluppo di applicazioni per la gestione e la modifica delle immagini.
Il nostro percorso
Il progetto è iniziato con una parte introduttiva, utile a comprendere cosa sia un’immagine digitale: una rappresentazione composta da pixel, ovvero piccoli punti disposti in una griglia, simile a un mosaico. Ogni pixel ha un colore definito da una combinazione di valori RGB (Rosso, Verde, Blu), ad esempio:
- (255, 0, 0) = rosso
- (0, 255, 0) = verde
- (0, 0, 255) = blu
- (255, 255, 255) = bianco
- (0, 0, 0) = nero
Le elaborazioni svolte
Successivamente, abbiamo iniziato a mettere in pratica le nozioni apprese, attraverso varie elaborazioni di immagini:
Abbiamo eseguito operazioni come:
- Specchiatura
- Sottrazione tra immagini
- Creazione del negativo
- Estrazione dei bordi
- Scala di grigi
- Sfocatura
- Creazione dell’istogramma di luminosità
Esempi pratici
Specchiatura:
Nella prima immagine elaborata, è stato applicato un filtro di specchiatura. Questo effetto può essere orizzontale, verticale oppure combinato per ottenere una specchiatura completa.
Negativo:
Nel secondo esempio, invece, abbiamo realizzato una versione in negativo dell’immagine. Questo significa che i colori e le tonalità vengono invertiti: nelle immagini in bianco e nero, le zone chiare diventano scure e viceversa.
Sfocatura e istogramma:
Nel terzo esempio l’immagine è stata sfocata usando un filtro che modifica i pixel in base ai valori dei pixel vicini. Maggiore è il valore della matrice di sfocatura, più evidente sarà l’effetto.
L’immagine seguente mostra invece l’istogramma della luminosità, strumento utile per analizzare la distribuzione dei toni chiari e scuri. Il picco al centro indica una predominanza di pixel con luminosità media, mentre i bordi indicano i pixel più scuri e più chiari.
Estrazione dei bordi:
Infine abbiamo applicato una tecnica per l’estrazione dei bordi: il programma confronta ogni pixel con quelli adiacenti per identificare bruschi cambiamenti di colore. Se la differenza supera una certa soglia, viene individuato un bordo. Il risultato è un’immagine in bianco e nero dove i contorni sono evidenziati.
Conclusioni
Queste sono solo alcune delle molte possibilità offerte da Python nel campo dell’elaborazione delle immagini. Le applicazioni sono numerose e spaziano dal riconoscimento facciale all’arte generativa, dalla diagnostica medica all’analisi ambientale.
Il progetto ha coinvolto tutta la classe e ci ha permesso di approfondire le nostre competenze, combinando programmazione e creatività. Lavorare con le immagini digitali ci ha aperto nuove prospettive, rendendo l’apprendimento coinvolgente e stimolante.
Boninsegna Cristian, Coletti Ilaria, Righi Simone
0