<< Définition et représentation d'histogrammes | Liste des exercices | Fonctionnalités graphiques d'OpenCV >>

2. Filtrages de pré- et post-traitements

Ces exercices ont pour but de se familiariser avec quelques filtres utiles en pré- ou post-traitement de l'image à analyser (avant ou après binarisation). Il est conseillé d'enregistrer les différents résultats de binarisation afin de les comparer.

  1. Modifier la fonction seuiller pour qu'elle retourne le seuil éventuellement déterminé et le résultat de binarisation. Ajouter aussi à cette fonction le paramètre show=False et n'afficher les images que si ce paramètre vaut True.

Pré-traitements de l'image

  1. Écrire la fonction :
def filtrer(image)
qui filtre l'image grâce à la fonction boxFilter puis la binarise automatiquement grâce à la fonction seuiller. Que réalise ce filtre, quel en est l'intérêt et la taille la plus adaptée pour la binarisation de notre image ?
  1. Modifier la fonction filtrer pour appliquer cette fois un filtrage médian en utilisant la fonction medianBlur. Quel est l'effet de ce filtre et permet-il d'améliorer le résultat de binarisation ?

Post-traitements de l'image binarisée

Nous allons ici utiliser des filtres morphologiques pour éliminer de l'image binarisée les artefacts résiduels (petites régions non significatives et pixels objets indésirables).

  1. Utiliser la fonction erode pour supprimer les artefacts de l'image binarisée sans ou avec pré-filtrage. Quelle est la taille minimale de l'élément structurant nécessaire pour éliminer tous les artefacts dans chaque cas ? Quel problème pose l'utilisation de cette fonction ?
  2. Pouvez-vous proposer d'autres types de filtres morphologiques qui amélioreraient l'image binarisée ? Pour montrer leur efficacité, comparer le nombre de pixels objets avec le cas de l'érosion en utilisant la fonction countNonZero.