Projets

[MP03c] Viva la Convolución !

Objectifs :

  • Numériser une image sous forme d’un tableau de valeurs numériques
  • Filtrer et détecter des informations spécifiques
  • Créer une image à l’aide d’un logiciel de modélisation.

Critères d'évaluation :

  • Compréhension du produit de convolution utilisé en traitement d'images et la capacité à le mettre en œuvre sur une image
  • Qualité du code produit et et de sa documentation

Lectures et travail demandés :

La plupart des filtres des logiciels de traitement des images (Gimp, Photoshop) utilisent le produit de convolution. Avec le filtre produit de convolution, vous pouvez rendre plus nette une image, supprimer ses petits défauts en la lissant, détecter les contours de formes... Les possibilités sons quasi infinies.

Mais qu'est-ce qu'un produit de convolution ? On peut s'en faire une idée approximative sans utiliser les outils mathématiques. Un produit de convolution en traitement d'image est un traitement d'une matrice par une autre appelée matrice de convolution ou « noyau  » (kernel).

Notre filtre « matrice de convolution » utilise une première matrice qui est l'image à traiter, c'est-à-dire un tableau de pixels en coordonnées rectangulaires 2D  et une seconde matrice plus petite et généralement carrée. Nous nous limiterons aux matrices 3x3, les plus utilisées qui suffisent à tous les effets recherchés.

Le filtre étudie successivement chacun des pixels de l'image. Pour chaque pixel, que nous appellerons « pixel initial », il multiplie la valeur de ce pixel et de chacun des 8 pixels qui l'entourent par la valeur correspondante dans le noyau. Il additionne l'ensemble des résultats et le pixel initial prend alors la valeur du résultat final.

Vite un schéma d'explication et un exemple simple :

Exercice :

  • Ecrire un programme sous Processing qui filtrera une image de votre choix à partir d'une matrice 3x3 de convolution.

  • Ce filtre devra lisser votre image autant de fois que l'utilisateur cliquera sur l'image traitée.

Ressources :