TP : analyse d'images¶
Seuillage d'image¶
Dans cette partie du TP, les fonctions OpenCV utilisées/utilisables sont les suivantes :
cv2.threshold(src, thresh, maxval, type[, dst]) -> retval, dst
cv2.calcHist(images, channels, mask, histSize, ranges[, hist[, accumulate]]) -> hist
cv2.calcBackProject() ->
Exercice 6¶
Ecrire un programme permettant de binariser une image en niveaux de gris en utilisant la fonction cv2.threshold.
Le seuil de binarisation devra être paramétrable grace à un slider.
Tester les différentes valeurs possibles du paramètre type de cette fonction.
Exercice 7¶
Dans l'exercice précédent, la binarisation de l'image se fait à pratir d'une unique valeur de luminance.
Une autre méthode de binarisation permettant plus facilement de dissocier un objet de son environnement consiste à analyser la répartition des couleurs d'un élément (le fond ou l'objet) et de rechercher dans l'image les zones ayant à peu près la même répartition de couleur. C'est le principe général du ChromaKeying utilisé lors de captations de vidéos sur fond vert comme au cinéma.
Pour cela, il suffit de :
- sélectionner une zone de l'élément à discerner (par exemple avec la souris)
- de calculer l'histogramme des composantes purement couleur de l'image mais uniquement sur la zone sélectionnée
- d'utiliser la fonction cv2.calcBackProject qui permet de calculer, pour chaque pixel, la distance entre l'histogramme de son voisinnage et un histogramme de référence.