Projet Traitement d'images en C Richet Coraline Han Xiaofei L3 IUP Informatique 2007-2008
Plan Présentation du projet Mise en œuvre des algorithmes de traitement d’images Bilan
Présentation du projet Une image en niveau de gris est un tableau bidimensionnel où chaque élément contient une valeur entre 0 et 255 000 008 016 024 032 040 048 056 064 072 080 088 096 104 112 120 128 255 248 240 232 224 216 208 200 192 184 176 168 160 152 144 136 Représentation des différentes nuances de gris
Objectifs du projet Initiation aux techniques de traitements d’image Manipulation des tableaux bidimensionnels en C Réalisation de différents algorithmes de traitements d’image
Schéma d’application de masque Algorithme de Sobel Appliquer un masque sur l’image pour afficher les endroits de l’image où les différences entre les pixels voisins sont importantes Schéma d’application de masque
Algorithme de Sobel Somme pondérée: Normalisation: Calcul du gradient: Dv= Dv / somme des coefficients positifs Calcul du gradient:
Algorithme de Sobel Deux fonctions Sobel : void basicThreeSobelFunction(const Image * in, Image * out) void genericSobelFunction(const Image * in, Image * out, int ** maskV, int ** maskH, int maskSize)
Algorithme de Sobel Résultat du traitement Sobel Image originale Image après Sobel
Algorithmes Erosion et Dilatation Supprimer les points de contour isolés après seuillage des images Dilatation : Combler les trous dans un contour après seuillage des images
Algorithmes Erosion et Dilatation Résultats du traitement érosion et dilatation : Image originale Image après seuillage + érosion Image après seuillage + dilatation
Algorithmes Ouverture et Fermeture Effectuer érosion puis dilatation pour supprimer petits composants Fermeture : Effectuer dilatation puis érosion pour combler les trous
Algorithmes Ouverture et Fermeture Résultats du traitement ouverture et fermeture : Image originale Image en ouverture Image en fermeture
Filtrage par moyenne Lisser l’image en appliquant sur chaque pixel de cette image un masque ne contenant que des valeurs à 1 Image par filtrage Image originale
Algorithme Segmentation par région Partitionner l’image en zone homogène
Algorithme Segmentation par région Deux fonctions : -void segmentationRegionGrowing(const Image *in,Image *out, int xPixelSeed, int yPixelSeed, int seuil) - void segmentationRegionGrowingRandomSeed(const Image *in,Image *out, int seuil)
Algorithme Segmentation par région Résultat du traitement segmentation par région Image partitionnée avec un pixel d’amorce (220,100) et un seuil de 60 Image originale
Difficultés rencontrées Installation de la librairie x11-dev Ecriture de la fonction Sobel générique Implémentation de la fonction SegmentationRegionGrowing
Bilan Ce que cela nous a apporté : Améliorations possibles : Approfondissement de nos connaissances du langage C Appréhension des problématiques de base au traitement d’images Améliorations possibles : Traitement d’autres algorithmes de segmentation avec des temps de traitement plus court que la segmentation par région