Sei sulla pagina 1di 3

04ISFOV - COMPUTER VISION

INTRODUZIONE A OPENCV
Durata prevista dellesercitazione: 3 ore (2 settimane)

Lo scopo di questa esercitazione quello di familiarizzare con le librerie OpenCV e con JavaFX,
apprendendo lutilizzo di alcune funzioni fondamentali delle librerie stesse. Nella prima ora e mezza si
dovrebbe riuscire a completare il Warm Up, lesercizio 1 e iniziare lesercizio 2. Come ulteriore aiuto, potete
utilizzare con i link utili riportati al termine di questo documento.

WARM UP
Si scarichino (dalla cartella Slide/OpenCV sul portale della didattica) i file compressi che contengono i due
progetti di esempio sullutilizzo di OpenCV in Java, con e senza JavaFX.
Aiutandovi con le slide dedicate a OpenCV e a JavaFX (sempre presenti sul portale della didattica), provate
a eseguire i progetti di esempio forniti, cercando di capire cosa facciano le funzioni in esso utilizzate, come
sono strutturati i progetti e verificando il corretto funzionamento delle applicazioni.

ESERCIZIO 1
Create ora un nuovo progetto JavaFX, come spiegato nella guida denominata OpenCV with Java presente
sul portale della didattica, replicando il comportamento del progetto di esempio che consente di mostrare
a video quanto viene acquisito dalla webcam del vostro computer. Nel caso la webcam non sia presente,
potete emularne il flusso video utilizzando una serie di immagini da leggere ciclicamente da disco,
eventualmente scaricandole da Internet (possibilmente con licenza Creative Commons).
Strutturate lapplicazione in maniera simile a quanto mostrato nellimmagine seguente e comunque in
modo da utilizzare un BorderPane in cui:
-

il flusso video sia presente nella parte centrale della finestra;


ci sia un bottone per far partire/fermare la cattura dei frame nella parte inferiore della finestra;
sia presente una checkbox denominata Mostra in scala di grigi (o Show in gray scale) nella parte
destra della finestra.

Agendo sulla checkbox deve essere possibile passare da una visualizzazione del video a colori a una in scala
di grigi.

ESERCIZIO 2
Partendo da quanto sviluppato nellesercizio precedente, aggiungete una checkbox denominata Mostra
logo (o Show logo) nellarea destra della finestra.
Agendo su tale checkbox, dovr essere mostrata/nascosta unimmagine o un logo a vostra scelta applicato
in un angolo del video. Assicuratevi che la dimensione del logo sia minore della dimensione del frame
acquisito dalla webcam o dal video.

Suggerimento: impostare un ROI (Region Of Interest) sui frame del video e poi sommare il logo allarea
cos delineata.

ESERCIZIO 3
Iniziando con la visualizzazione in scala di grigi, create e visualizzate listogramma di ogni frame del video in
una nuova ImageView o in una finestra diversa da quella principale. Mostrate, successivamente,
listogramma per ogni canale della versione a colori.
Suggerimento: per visualizzare listogramma nella versione a colori del video, si proceda a dividere
limmagine nei 3 canali RGB e a mostrare listogramma per i tre canali separatamente.

ESERCIZIO 4
Modificate il programma sviluppato finora in modo da poter eseguire la sogliatura del flusso video in scala
di grigi, cercando di separare lo sfondo dal soggetto in primo piano.

LINK UTILI
-

Esercizio 1:
http://docs.opencv.org/java/org/opencv/highgui/Highgui.html (metodi imread e imwrite)
Esercizio 2:
http://docs.opencv.org/doc/tutorials/core/adding_images/adding_images.html (esempio)
http://docs.opencv.org/java/org/opencv/core/Core.html (metodo AddWeighted)
Esercizio 3:
http://docs.opencv.org/java/org/opencv/imgproc/Imgproc.html (metodo calcHist)
http://docs.opencv.org/doc/tutorials/imgproc/histograms/histogram_calculation/histogram_calcul
ation.html (esempio)
Esercizio 4:
http://docs.opencv.org/java/org/opencv/imgproc/Imgproc.html (metodo threshold)
http://docs.opencv.org/doc/tutorials/imgproc/threshold/threshold.html (esempio)