Skip to content

Latest commit

 

History

History
executable file
·
55 lines (36 loc) · 2.08 KB

File metadata and controls

executable file
·
55 lines (36 loc) · 2.08 KB

TP9 — Encrage d’une image avec 2 couleurs

Projet réalisé dans le cadre du module LIFAPC — Algorithmique, Programmation et Complexité
Travail réalisé par: TRUONG THI Hanh et MEJDOUB Ines

Objectif du projet

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.

L’image est convertie en un graphe orienté :

  • 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)

Le programme calcule ensuite un flot maximal de S vers P.

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)

Paramètres importants:

  • "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

Description des modules

  • 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.

Compilation et exécution

  • 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

Resultat obtenu (avant et apres la binarisation de lilage baboonreduced.pgm)

Capture du résultat