Obiettivi formativi generali dell'insegnamento in termini di risultati di apprendimento attesi.
Conoscenza e capacità di comprensione (knowledge and understanding): l'obiettivo del corso è quello di far acquisire conoscenze che consentano allo studente di comprendere i meccanismi teorici e fisici che stanno alla base del sistema visivo umano, della formazione ed elaborazione delle immagini digitali, del miglioramento della qualità visiva delle immagini digitali.
Capacità di applicare conoscenza e comprensione (applying knowledge and understanding): lo studente acquisirà le competenze necessarie per acquisire, editare, comprimere e salvare una immagine digitale.
Autonomia di giudizio (making judgements): Attraverso esempi in aula lo studente sarà messo nelle condizioni di comprendere se le soluzioni da lui proposte soddisfano un certo grado di qualità.
Abilità comunicative (communication skills): lo studente acquisirà le necessarie abilità comunicative e la proprietà di linguaggio tecnico nell'ambito del settore Multimediale.
Capacità di apprendimento (learning skills): il corso si propone, come obiettivo, di fornire allo studente le necessarie metodologie teoriche per poter affrontare e risolvere autonomamente nuove problematiche che dovessero sorgere durante una attività lavorativa. A tale scopo diversi argomenti saranno trattati a lezione coinvolgendo lo studente nella ricerca di possibili soluzioni a problemi reali.
Obiettivi formativi generali dell'insegnamento in termini di risultati di apprendimento attesi.
Conoscenza e capacità di comprensione (knowledge and understanding): l'obiettivo del modulo di laboratorio è quello di far acquisire conoscenze sulle modalità di programmazione per sistemi che richiedano un certo grado di interazione. Inoltre, verranno fornite nozioni di programmazione che consentiranno allo studente di progettare soluzioni che richiedano l’elaborazione di immagini digitali.
Capacità di applicare conoscenza e comprensione (applying knowledge and understanding): nel corso si studierà il linguaggio di programmazione Processing, software e linguaggio improntato su Java che servirà a fare pratica con le nozioni teoriche.
Autonomia di giudizio (making judgements): Attraverso l’implementazione in aula lo studente sarà messo nelle condizioni di comprendere se le soluzioni da lui proposte soddisfano un certo grado di qualità.
Abilità comunicative (communication skills): lo studente acquisirà le necessarie abilità comunicative e la proprietà di linguaggio tecnico nell'ambito del settore Multimediale e nella programmazione di soluzioni ad esso relative.
Capacità di apprendimento (learning skills): il corso si propone, come obiettivo, di fornire allo studente le necessarie metodologie pratiche per poter affrontare e risolvere autonomamente nuove problematiche che dovessero sorgere durante una attività lavorativa. A tale scopo diversi argomenti saranno trattati a lezione coinvolgendo lo studente nella ricerca di possibili soluzioni a problemi reali.
Didattica Frontale
Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.
Esercitazioni laboratoriali in Aula
Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.
Buona conoscenza della programmazione di base. E' sufficiente aver superato il corso di programmazione I.
Buona conoscenza della programmazione di base. E' sufficiente aver superato il corso di programmazione I e II.
E' fortemente consigliata la presenza alle lezioni.
E' fortemente consigliata la presenza alle lezioni.
Introduzione alle immagini digitali
Formazione della immagini nell’occhio umano
Equazione della lente sottile
Illusioni ottiche
I sensori digitali
Il Bayer pattern
Color interpolation
Immagini Raster e immagini vettoriali
Rappresentazione delle immagini raster
Campinamento
Quantizzazione
Aliasing
Risoluzione delle immagini digitali
Interpolazione replication, bilineare e bicubica
Il PSNR
Il colore
Gli spazi di colore RGB, CMY, HSV, Munsell, YUV, YCbCr
Le immagini indicizzate e le palette
Il reindexing
L’istogramma di una immagine
Le operazioni puntuali e le LUT
Bit-planes
Operatori lineari e invarianti per traslazione
Noise reduction
Edge detection
Dominio spaziale
Dominio delle frequenze
Trasformata di Fourier
La convoluzione e il teorema della convoluzione
Compressione lossy e lossless
Teorema di Shannon per la compressione
Codifica di Huffman
Lo standard Jpeg
Introduzione a Processing
Interazione utente e rilevamento input da mouse e da tastiera
Operazioni affini per il disegno:
Classi e oggetti in Processing, ereditarietà e strutture dati.
Elaborazione immagini, classe PImage e metodi;
Implementazione algoritmi di elaborazione immagine
Fondamenti di Image Processing di S. Battiato e F. Stanco - Ediargo
ELABORAZIONE DELLE IMMAGINI DIGITALI, Terza Edizione, Rafael C. Gonzalez, Richard E. Woods, Ediz. Pearson, Prentice Hall
Documentazione ufficiale di Processing: https://processing.org/reference/
“Algorithms for Visual Design Using the Processing Language” - Kostas Terzidis - Wiley Publishing.
“Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction” - Daniel Shiffman - Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.
“Getting Started with Processing” - Casey Reas and Ben Fry - Make Books, Sebastopol, CA.
Tutto il materiale didattico è presente su Studium.
Tutto il materiale didattico è presente su Studium.
Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.
INTERAZIONE E MULTIMEDIA | ||
Argomenti | Riferimenti testi | |
1 | La percezione visiva, Acquisizione delle immagini, campionamento e quantizzazione, strumenti matematici usati nella elaborazione delle immagini | Capitolo 2 di "Elaborazione delle Immagini Digitali" |
2 | Istogrammi, filtraggi spaziali, Smoothing | Capitolo 3 di "Elaborazione delle Immagini Digitali" |
3 | Filtraggio nel dominio delle frequenza, trasformata di Fourier, Filtraggi nel dominio della frequenza | Capitolo 4 di "Elaborazione delle Immagini Digitali" |
4 | Rumore, filtraggio spaziale | Capitolo 5 di "Elaborazione delle Immagini Digitali" |
5 | Spazi colore | Capitolo 6 di "Elaborazione delle Immagini Digitali" |
6 | Compressione delle immagini | Fondamenti di Image Processing |
LABORATORIO | ||
Argomenti | Riferimenti testi | |
1 | Introduzione a Processing | |
2 | Interazione utente e rilevamento input da mouse e da tastiera | |
3 | Operazioni affini per il disegno | |
4 | Classi e oggetti in Processing, ereditarietà e strutture dati | |
5 | Elaborazione immagini, classe PImage e metodi | |
6 | Implementazione algoritmi di elaborazione immagine |
L'esame si articola in 2 fasi:
Fase (1) Agli studenti sarà somministrato un test a risposta multipla di 10 domande su MS Teams. Lo studente che risponderà correttamente ad almeno 6 domande passerà alla fase (2). Altrimenti, l'esame si concluderà con un'insufficienza e lo studente verrà rimandato al prossimo appello. Questo punteggio è chiamato A.
Fase (2) Gli studenti sosterranno un breve test scritto in cui verrà richiesto di svolgere qualche esercizio. Alla fine di questa fase allo studente verrà assegnato un punteggio compreso tra -4 e 4, in base alla qualità delle risposte. Questo punteggio è chiamato B.
Conclusione: il voto della parte di teoria è calcolato facendo A*3+B. Se tale voto è maggiore o uguale a 18 la parte di teoria risulta superata con quel voto. Altrimenti la prova risulterà insufficiente e lo studente sarà rimandato ai prossimi appelli. Le due fasi non possono essere separate e sostenute in appelli diversi. Costituiscono un'unica prova d'esame.
E' prevista una prova in itinere nel periodo di sospensione delle lezioni per prove in itinere previsto dal Corso di Laurea. Le date sono riportate su http://web.dmi.unict.it/corsi/l-31/calendario-didattico
La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.
Esame di laboratorio
La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.
Learning assessment may also be carried out on line, should the conditions require it.
le domande nell'esame scritto sono a risposta aperta. Ne riporto un paio come esempio.
56 |
45 |
11 |
67 |
100 |
232 |
0 |
129 |
50 |
a) [10] Implementare una classe Ball con le seguenti caratteristiche: la classe è identificata da una posizione, da un raggio R e da una velocità sy lungo y. Di default sy=5. Appare come un cerchio rosso, senza bordi di raggio R. Ha un metodo per cambiare la sua posizione lungo l’asse y di un valore pari a sy per ciclo di draw. Quando il centro di Ball tocca il bordo superiore o inferiore della finestra la sua velocità cambia segno.
b) [5] Estendere tramite ereditarietà la classe Ball definendo HyperBall. HyperBall differisce da Ball poiché possiede anche un attributo colore – di default blu. Deve avere un metodo che controlla se il puntatore del mouse si trova all’interno della circonferenza che lo rappresenta e, se ciò accade, il colore di HyperBall viene modificato in un colore casuale.
[OBBLIGATORIO PER VALUTARE I PUNTI PRECEDENTI]
Alla pressione di “R” o “r” lo sketch viene resettato. Implementare uno sketch in cui si apre una finestra di dimensioni 512×256. Ad ogni ciclo di draw la finestra viene aggiornata.
Per rendere (a) valutabile - Nella metà sinistra istanziare un oggetto di tipo Ball che si muove in base al comportamento definito. La posizione iniziale è casuale e compresa nella metà sinistra della finestra, mentre il raggio è 40.
Per rendere (b) valutabile - Nella parte destra della finestra va istanziato un oggetto di tipo HyperBall con le stesse caratteristiche al punto (a); la differenza è che il colore cambia se il puntatore del mouse vi passa sopra.