Projet réalisé dans le cadre du module LIFAPC — Algorithmique, Programmation et Complexité
Travail réalisé par:
TRUONG THI Hanh et MEJDOUB Ines
L’objectif de ce TP est de réaliser une binarisation d’une image en niveaux de gris en utilisant un modèle de coupe de graphe, et non un simple seuillage.
- Chaque pixel = un nœud
- 4 voisins cardinaux (Ouest, Est, Nord, Sud)
- Deux nœuds spéciaux :
- S : source (encre noire)
- P : puits (encre blanche)
Ce flot permet de déterminer une coupe minimale, partitionnant l’image en :
- pixels connectés à S -> noirs (0)
- pixels connectés à P -> blancs (255)
-
"sigma" : représente le contraste local : plus il est petit, plus l’algorithme détecte vite les différences entre pixels. Plus il est grand, plus l’image est considérée comme lisse.
-
"alpha" : contrôle si un pixel est plutôt sombre ou clair : un grand alpha pousse fortement les pixels sombres vers le noir et les pixels clairs vers le blanc.
-
"H" : valeur maximale possible pour les capacités entre deux pixels
- Pixel : stocke l’intensité et les capacités/flots sortants d’un pixel.
- Image : gère la lecture d’image, la création du graphe, les capacités, le flot maximal et la binarisation.
- comparaison : génère une image avant/après en mettant l’originale et la binarisée côte à côte.
-
Compiler: Ouvrir un terminal, se placer dans le dossier du projet Puis compiler avec : make
-
Exécuter; Après la compilation, lancer le programme avec : ./bin/main.ex
-
Le programme génère:
data/resultat.pgm -> image binarisée
data/comparaison.pgm -> originale + binaire
