Manipolare le immagini grafiche con OpenCV

Per introdurre l’uso della libreria OpenCV, partiamo da un semplice programma in grado di mostrare tutti i passaggi necessari per un corretto uso della libreria stessa:

# Importazione librerie import cv2 # Caricamento immagine img = cv2.imread('criceto.jpg',1) # Visualizzazione immagine cv2.imshow('Immagine base', img) # Attesa della pressione di un carattere cv2.waitKey(0) # Chiusura della finestra grafica cv2.destroyAllWindows()

Vediamo nel dettaglio le singole istruzioni:

# Importazione librerie import cv2

cv2 è il nome del modulo python che collega le istruzioni del listato alla libreria OpenCV e va inserita per caricare il modulo prima di poter essere utilizzato nelle istruzioni che seguiranno.

# Caricamento immagine img = cv2.imread('criceto.jpg',1)

Il comando imread carica in memoria l’immagine criceto.jpg e la associa all’oggetto img.

Attenzione: caricare non significa visualizzare! L’operazione di caricamento è necessaria per trasferire dalla memoria di massa (disco fisso, chiavetta USB, ecc) alla memoria centrale (RAM) l’immagine salvata nel documento specificato dal nome (in questo caso criceto.jpg).

L’immagine caricata verrà associata all’oggetto img a cui si potrà fare riferimento nelle istruzioni a seguire.

# Visualizzazione immagine cv2.imshow('Immagine base', img)

Ora che l’immagine è stata caricata in memoria e associata all’oggetto img, è possibile visualizzarla sullo schermo grazie al comando imshow.

I parametri che occorre passare al comando perché possa svolgere l’operazione correttamente, sono due:

  • il primo parametro è il nome della finestra grafica dentro la quale l’immagine verrà visualizzata
  • il secondo parametro rappresenta il formato dell’immagine e può assumere i seguenti valori:
    • 1: immagine verrà caricata a colori
    • 0: immagine verrà caricata in bianco/nero
    • -1: immagine verrà caricata a colori insieme al canale alfa (se presente)

Se il secondo parametro non viene specificato (cioè è presente solo il nome dell’immagine da caricare) viene considerato come valore del formato il valore 1.

# Attesa della pressione di un carattere cv2.waitKey(0)

il comando waitKey serve per temporizzare la visualizzazione della finestra grafica.

Il valore passato al comando è un numero intero che rappresenta in millisecondi il tempo della visualizzazione: una volta trascorso, la finestra verrà chiusa.

Se però si passa un tempo uguale a 0 millisecondi, la finestra rimarrà sullo schermo fino a quando l’utente non premerà un qualsiasi tasto sulla tastiera.

# Chiusura della finestra grafica cv2.destroyAllWindows()

Il comando destroyAllWindows serve per rilasciare tutte le risorse utilizzate dal programma e dalla libreria OpenCV