Rapport de TP1 de Traitement d`images Kasereka Selain

Transcription

Rapport de TP1 de Traitement d`images Kasereka Selain
Rapport de TP1 de Traitement d'images
Kasereka Selain
Partie 1 : Profil d'intensité des pixels d'une ligne d’une image
Dans cette première partie nous avons écrit un programme qui permet de lire une image (en
niveau de gris puis en couleur) et d'extraire les valeurs du profil d'intensité des pixels d'une
ligne. Les lignes qui suivent expliquent comment notre programme écrit en C++ fonctionne.
Fonctionnement du programme : Notre programme reçoit en entrée une image à niveau
de gris ou une image couleur pour lecture et pour l'extraction, en sortie notre programme
fourni une nouvelle image avec la ligne du profil extrait et les valeurs du profil de cette
ligne. Notons que ces deux images nouvellement obtenues sont écrites dans deux fichiers
séparés sous les noms image_ligne_out et image_profil_out.
Soulignons que pour lancer notre programme il suffit d’accéder dans le répertoire « profil »
de taper la commande «./tp1_profil image ». Il faudra au préalable exploiter notre
« MakeFile » pour créer l’exécutable grâce à la commande « make ». Nous avons testé
notre programme avec une image à niveau de gris et une image en couleur. Ci-dessous nous
présentons les résultats obtenus:
a. Exécution du programme avec une image a niveau de gris :
Figure 1. Image à lire
Figure 2. Image avec ligne à
extraire
Figure 3. Image qui présente
les valeurs de profil
b. Exécution du programme avec une image en couleur :
Figure 4. Image à lire
Figure 5. Image avec ligne à
extraire
Figure 6. Image qui présente
les valeurs de profil
Observations :
Observant les deux résultats ci-dessus, nous constatons que les valeurs de profil sur les
deux exécutions respectent les niveaux où la ligne est passée. Par exemple sur la figure 2 cidessus, le niveau de gris est un peu clair avant que la ligne ne traverse le costume noir de la
personne sur l'image, cela est bien représenté sur la figure 3 qui montre comment la valeur
du profil d'intensité chute lorsqu’on atteint la couleur noir du costume. Le même scenario
est constaté lorsque, sur la même photo, la ligne dépasse le costume (la valeur du profil
d'intensité remonte). Ce même raisonnement peut être amené pour les images en couleurs,
mais pour une image couleur, nous obtenons trois profils d’intensité (rouge, vert et bleu).
Partie 2 : Modification du contraste d’une image
Dans cette deuxième partie nous décrivons les manipulations du contraste d'une image.
Pour ce faire nous avons implémenté des programmes permettant de le faire en s'appuyant
sur les fonctions de transformation de contraste vue au cours:
1. Première modification du contraste :
Nous avons commencé par la fonction de transformation linéaire par morceau, cette
fonction se présente comme sur la figure 7 ci-dessous. Dans cette fonction nous avons les
points (r1, s1) et (r2, s2) pour contrôler la forme de la transformation. La sélection des
points de contrôle dépend des types d'images et varie d'une image à une autre image.
Si par exemple r1 = r2 = s1 et s2 alors la transformation est linéaire et cela n'affecte pas
l'image.
Figure 7. Illustration de la transformation par morceau
Fonctionnement du programme : Notre programme prend en entrée une image et donne
en sortie plusieurs images dont l'image contrastée, l'histogramme de l'image originale,
l'image originale avec ligne montrant l'objet à mettre en évidence sur l'image, l'image avec
le profil d'intensité de l'image originale, l'histogramme de l'image contrastée, le profil
d'intensité sur l'image contrastée sur la ligne (même pour les autres fonctions). Pour obtenir
notre résultat nous avons entré les valeurs suivantes : r1=11, s1=160, r2=11, s2=161.
Pour lancer notre programme il suffit d’accéder dans le répertoire
« contrast_fonction_lineaire_par_ morceau » et taper la commande «./contrast1 image».
Il faudra au préalable exploiter notre « MakeFile » pour créer l’exécutable grâce à la
commande « make ».
Résultats 1.a:
Figure 8. Image originale
Figure 10. Image origine avec ligne sur l’objet
à mettre en évidence
Figure 9. Histogramme image originale
Figure 11. Profil d'intensité de l’image original
Observations :
Nous pouvons constater sur la figure 8, l'image originale de notre choix a des parties noires
et blanches, l'histogramme de l'mage originale (Figure 9) prouve que l'image a une
résolution pas du tout mal mais que nous pouvons améliorer pour chercher de bien afficher
tous les objets qui peuvent être intéressants.
Résultat 1.b :
Figure 12. Image contrastée
Figure 13. Histogramme de l’image contrastée
Figure 14. Image contrastée avec ligne sur
l’objet en mettre à évidence
Figure 15. Valeur de profil de l’image contrastée
Observations :
Nous constatons qu'il y a une très grande différence entre l'image originale (figure 8) et
l'image obtenue après modification de contraste (figure 12). La nouvelle image obtenue est
bien contrastée et nous avons maintenant la possibilité de voir facilement touts les objets
dans les cases noires qui étaient invisibles avant. Et nous voyons bien que les objets que
nous avions cherchés de mettre en évidence sont bien claires. Grâce au profil d'intensité de
la ligne (Figure 15), il est claire de voir que la présence du petit carré à gauche et du petit
trait à droite (le deux en blanc) font varier le profil d'intensité. Mais nous constatons que la
partie blanche n'est pas bien claire.
2. Deuxième modification du contraste :
La deuxième fonction que nous utilisons est la fonction de transformation non linéaire, la
ɤ
correction GAMMA. Cette fonction est représentée par cette fonction g(i,j)=Kf(i,j)
Pour trouver nos résultats, nous avons fixé Gamma=0,5
Pour lancer notre programme il suffit d’accéder dans le répertoire
« contrast_fonction_non_lineaire _gamma» de taper la commande «./contrast2 image».
Il faudra au préalable exploiter notre « MakeFile » pour créer l’exécutable grâce à la
commande « make ».
Résultat 2.a :
Figure 16. Image originale
Figure 17. histogramme image originale
Figure 18. Image contrastée avec ligne
sur l’objet à mettre en évidence
Figure 19. Profil d'intensité image original
Observations :
Cette image m’attire particulièrement mais je trouve qu’elle n’est pas bien contrastée, car
l’objet que nous voulons mettre en évidence (sur la ligne de la figure 18) n’est pas bien
claire et aussi toute la partie du dessus.
Résultat 2.b :
Figure 20. Image contrastée
Figure 22. Image contrastée avec ligne
sur l’objet à mettre en évidence
Figure 21. Histogramme de l’image contrastée
Figure 23. Profil d’intensité sur la ligne de
l’image contrastée
Observations :
Grâce aux modifications que nous avons apportées sur le contraste de l’image originale
(figure 16) il est claire de voir que l’image en sortie est actuellement bien contrastée.
L’objet mis en exergue est très clairement visible et aussi toute la partie du dessus. Cette
fonction a donc répondu à nos attentes. Cela est même prouvé par le profil d’intensité
(figure 21) et l’histogramme (figure 23) de l’image contrastée.
Petite comparaison des fonctions :
Pour des raisons de comparaison des différentes fonctions de transformation de contraste,
nous avons utilisé la même image que celle de la première fonction (fonction linéaire par
morceau) et nous constatons que la fonction non linéaire GAM MA nous permet de ressortir
d'autres objets que nous n'avons pas remarqués avec d'autres fonctions comme le montre les
images ci-dessous :
Résultat 2.c:
Figure 24. Image originale avec ligne
Figure 25. Image contrastée
avec la fonction gamma
3. Troisième modification du contraste :
Pour la troisième transformation nous avons utilise la transformation linéaire. Nous
utilisons la valeur 1,6 comme valeur de contrôle de contraste.
Résultats 3.a:
Figure 26. Image originale
Figure 27. Histogramme image originale
Figure 28. Image contrastée avec ligne
sur l’objet à mettre en évidence
Figure 29. Profil d'intensité image original
Pour lancer notre programme il suffit d’accéder dans le répertoire « contrast_fonction_
lineaire» de taper la commande «./contrast3 image». Il faudra au préalable exploiter notre
« MakeFile » pour créer l’exécutable grâce à la commande « make ».
Observations :
Cette image est très flou et nous constatons que derrière la personne se trouvent su cette
photos il y a des objets. L’objectif poursuivi ici est d’appliquer un contraste à cette image
pour identifier ces objets. Nous constatons que l’histogramme (Figure 27) prouve que
l’image n’est pas bien contrastée et aussi avec la ligne que nous avons placée pour le profil
d’intensité sur l’objet à mettre en exergue.
Résultat 3.b.
Figure 30. Image contrastée
Figure 31. Histogramme image
contrastee
Figure 32. Image contrastée avec ligne
Figure 33. Profil de l’image contrastée
Observations :
Comme nous pouvons le constater, partant de l'image de départ (figure 26) qui parai plus ou
moins flou, l'objet derrière le monsieur sur l'image est maintenant visible, c'est donc une
table et des livres sur l'étagère. Cela est remarquable grâce à l’histogramme (figure 31) qui
s’élargi par rapport à l’histogramme de l’image originale.
Observant les figures 29 et 33 nous constatons que l’objet que nous avions voulu mettre en
évidence est remarquable, dans la figure 33 le profil d’intensité est élevé car l’objet est plus
claire qu’avant (voir figure 28 et 29)
Petite comparaison des fonctions :
Dans le souci de cherche à palier au problème que nous avons signalé pour la première
transformation, nous utilisons l’image pour laquelle nous avions optée à la première
transformation (voir Figure 8) pour voir le résultat qui sera observe :
Résultats 3.c:
Figure 34.
24. Image originale avec ligne à extraire
Figure 35. Profil d'intensité de l’image originale
Figure 36. Image contrastée avec ligne à extraire
Figure 37. Profil d'intensité sur l’image contrastée
Observations :
Observant la transformation du contraste de cette image par cette fonction, nous constatons
que l'image devient plus claire sur les parties qui étaient déjà blanches, mais les objets à
afficher ou ciblés n'apparaissent pas bien sur l'image contrastée. Donc cette fonction serrai
intéressante pour des images où on a juste besoin d'accentuer les couleurs précises, comme
ici la couleur blanche.
Conclusion
Partant des fonctions de transformation que nous avons appliquées et multiples exemples
que nous avons exploitées dans ce petit rapport, plusieurs constants peuvent être tirés, mais
le grand problème reste celui de savoir quelle fonction de transformation de contraste
appliquée pour quelle image ?
Dans ce travail nous avons écrit quatre programmes, le premier était pour le profil
d’intensité, les trois derniers se sont basés sur les fonctions de transformation de contraste
dont la fonction de transformation linéaire par morceau, fonction de transformation nonlinéaire (correction gamma) et fonction de transformation linéaire.

Documents pareils