1 Projet Traitement d`images en C

Download Report

Transcript 1 Projet Traitement d`images en C

Projet
Traitement d'images en C
Richet Coraline
Han Xiaofei
L3 IUP Informatique
2007-2008
1
Plan
2

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
3
Objectifs du projet

Initiation aux techniques de traitements d’image

Manipulation des tableaux bidimensionnels en C

4
Réalisation de différents algorithmes de traitements
d’image
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
5
Algorithme de Sobel

Somme pondérée:

Normalisation:
Dv= Dv / somme des coefficients positifs

6
Calcul du gradient:
Algorithme de Sobel

7
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
8
Image après Sobel
Algorithmes Erosion et Dilatation

Erosion :
–

Dilatation :
–
9
Supprimer les points de
contour isolés après
seuillage des images
Combler les trous dans
un contour après
seuillage des images
Algorithmes Erosion et Dilatation

Résultats du traitement érosion et dilatation :
Image originale
10
Image après seuillage + érosion
Image après seuillage + dilatation
Algorithmes Ouverture et Fermeture

Ouverture :
–

Fermeture :
–
11
Effectuer érosion puis dilatation pour supprimer petits
composants
Effectuer dilatation puis érosion pour combler les trous
Algorithmes Ouverture et Fermeture

Résultats du traitement ouverture et fermeture :
Image originale
12
Image en ouverture
Image en fermeture
Filtrage par moyenne

13
Lisser l’image en appliquant sur chaque pixel de cette
image un masque ne contenant que des valeurs à 1
Image originale
Image par filtrage
Algorithme Segmentation par région

14
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)
15
Algorithme Segmentation par région

Résultat du traitement segmentation par région
Image originale
16
Image partitionnée avec
un pixel d’amorce
(220,100) et un seuil de
60
Difficultés rencontrées
17

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 :
–
18
Approfondissement de nos connaissances du langage C
Appréhension des problématiques de base au traitement
d’images
Traitement d’autres algorithmes de segmentation avec des
temps de traitement plus court que la segmentation par
région