Download - Projet Traitement d'images en C
3
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
4
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
5
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
6
Algorithme de Sobel
Somme pondérée:
Normalisation:Dv= Dv / somme des coefficients positifs Calcul du gradient:
7
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)
9
Algorithmes Erosion et Dilatation
Erosion :– Supprimer les points de
contour isolés après seuillage des images
Dilatation :– Combler les trous dans
un contour après seuillage des images
10
Algorithmes Erosion et Dilatation
Résultats du traitement érosion et dilatation :
Image originale
Image après seuillage + érosion Image après seuillage + dilatation
11
Algorithmes Ouverture et Fermeture
Ouverture :– Effectuer érosion puis dilatation pour supprimer petits
composants
Fermeture :– Effectuer dilatation puis érosion pour combler les trous
12
Algorithmes Ouverture et Fermeture
Résultats du traitement ouverture et fermeture :
Image originale
Image en ouverture Image en fermeture
13
Filtrage par moyenne
Lisser l’image en appliquant sur chaque pixel de cette image un masque ne contenant que des valeurs à 1
Image originale Image par filtrage
15
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)
16
Algorithme Segmentation par région
Résultat du traitement segmentation par région
Image originale Image partitionnée avec un pixel d’amorce
(220,100) et un seuil de 60
17
Difficultés rencontrées
Installation de la librairie x11-dev
Ecriture de la fonction Sobel générique
Implémentation de la fonction SegmentationRegionGrowing
18
Bilan
Ce que cela nous a apporté :– 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