Projet : Traitement d’Images Numériques#
Introduction#
L’objectif de ce projet est d’utiliser les compétences que vous avez acquises pour implanter des algorithmes de traitement d’images sur des images en format texte (PBM, PGM, et PPM)
C’est un projet guidé, découpé en exercices pensés de façon progressive. Ne vous fiez pas à sa longueur, il est volontairement long afin que chacun puisse s’exprimer en fonction de ses compétences, de son éventuelle expérience préalable et de ses goûts. À vous de choisir un sous-ensemble adapté des questions.
Il a été conçu pour qu’un étudiant sans expérience de programmation préalable mais ayant suivi le module avec assiduité puisse facilement avoir au minimum 12. D’autre part, l’expérience que vous accumulerez au cours des premières questions vous fera paraître les questions ultérieures plus simples. Et vous aurez un vrai sentiment d’accomplissement en progressant dans le sujet.
Toutes les parties portent sur des techniques basiques de traitement d’images. Mais bien évidemment, ce n’est qu’un prétexte pour vous faire travailler les notions centrales du cours: tests, tableaux, boucles, fonctions, compilation séparée. Aucune notion de traitement d’images n’est prérequise.
Niveaux de difficultés du projet#
Les exercices sont classés en fonction de leur difficulté :
Question facile: (*)
Question moyenne: (**)
Question difficile: (***)
Les sections Aller plus loin vous donnent des pistes pour aprofondir certains aspects. Elles ne sont pas nécessaires pour valider le projet mais sont prises en compte dans l’évaluation
Les différentes parties du projet#
Le projet commence par un préambule qui rappelle les bases des formats images PBM PGM et PPM et vous sert d’outil de visualisation. Puis il est découpé en exercices selon six parties:
Partie 0 : préambule, conversion et visualisation des images
Partie 1 : traitements basiques d’images binaires
Partie 2 : traitements basiques d’images en niveaux de gris
Partie 3 : extraction de contours
Partie 4 : mise en place d’une bibliothèque de traitement d’images
Partie 5 : Traitements d’images en couleurs
Partie 6 : Segmentation en régions par la méthode du super pixel
Remarque: les premiers exercices sont faits dans des fichiers indépendants. Puis, à la fin du projet, on passe à une organisation multi-fichiers dans le but de créer une bibliothèque de traitement d’images.
Les exercices de la partie 1 sont pensés de façon progressive pour introduire les notions de base dont nous aurons besoin dans le projet.
Les fonctions de la partie 2 sont indispensables pour la suite du projet. L’objectif est d’arriver à implanter la partie 3 (qui dépend de 2) et la partie 6 (qui dépend de 2, 4 et 5).
À l’intérieur d’une partie, les questions se suivent (sauf exceptions indiquées). En dehors de ces dépendances, vous pouvez travailler sur ce projet dans l’ordre que vous souhaitez.
Par ailleurs, nous vous fournissons aussi
Une proposition de squelette des fichiers, avec de la documentation et des tests;
Des exemples d’images et des résultats de traitements par les différents filtres pour comparer avec les vôtres.
Comment tester vos fonctions et programmes#
Lors des premiers exercices, vous trouverez des tests directement dans les fichiers à remplir. A partir de la partie 4, des fichiers spécifiques de test sont proposés pour chaque module. A vous de compléter et ajouter les tests nécessaires.
Pensez à remplir le rapport.md au fur et à mesure.