Vision par ordinateur département informatique
Niveau : FIA3-GL-AL
TP 1 : initiation au traitement d’image avec
python
E-mail : hajerwalhaziissat@[Link]
Objectifs du TP
• Manipulation des images avec python.
• Traitements de base.
Travail demandé
Exécuter les lignes de programme suivant :
from PIL import Image
import [Link] as plt
img = [Link]("[Link]")
print('mode',[Link],'size',[Link])
colonne,ligne = [Link]
imgF = [Link]([Link],[Link])
for i in range(ligne):
for j in range(colonne):
pixel = [Link]((j,i))
print("(",pixel[0],",", pixel[1],",",pixel[2],")")
print("pixel",pixel)
Pour toutes les questions suivantes, vous devez utiliser 2 méthodes :
1. Utiliser la méthode classique.
2. Utiliser une fonction prédéfinie si elle existe.
Question 1 : Effet miroir
Transformer l’image en son symétrique par rapport à l’axe de symétrie « vertical »
Vision par ordinateur département informatique
Niveau : FIA3-GL-AL
Question 2 : Niveau de gris
Convertir l’image en niveau de gris. Pour convertir une image couleur en niveau de gris, un pixel
représenté par ses composantes (r,g,b) doit être remplacé par un pixel à une seule composante
y ∈ [0,255] appelée luminance. La formule communément recommandée pour cette conversion
est la suivante :
y = 0,2126 r + 0,7152 g + 0,0722 b (y étant arrondi à l’entier le plus proche)
Question 3 : Binarisation
Transformer l’image en noir et blanc (binaire)
Question 4 : Négatif d’une image
Construire et afficher des négatifs de l’image donnée.
La couleur négative d'une couleur p=(r,v,b) est la couleur p′=(255−r,255−v,255−b).
Vision par ordinateur département informatique
Niveau : FIA3-GL-AL
Questions 5 : Versions monochromes d’une image
Construire et afficher des versions monochromes d’images données (canal rouge, canal bleu et
canal vert).
Pour obtenir une version monochrome d’une image il suffit de transformer chaque couleur de
pixel p=(r,v,b) en annulant deux des trois composantes, i.e.
p′=(r,0,0) pour une version rouge ;
p′=(0,v,0) pour une version verte ;
et p′=(0,0,b) pour une version bleue.
Question 6 : Insertion logo
Afficher une nouvelle image correspondant au logo (sans le fond blanc) superposé à l'image de
fleur.
Question 7: Fusionner deux images
Vision par ordinateur département informatique
Niveau : FIA3-GL-AL
Fusionner deux images couleur qui peuvent être de dimensions différentes.
Pour fusionner deux images, on calcule la nouvelle image pixel par pixel, la valeur de chaque
pixel étant le maximum des valeurs des pixels correspondant dans chacune des images à
fusionner.
Question 8 : Agrandir une image
Construire une image dont les dimensions sont deux fois celles de l’image originale.
Les étapes :
1. parcourir notre image de départ et lire pour chaque pixel la valeur du triplet (r,g,b)
2. reporter ce triplet sur 4 pixels qui lui correspondront dans l’image que nous allons construire.
3. construire la grande image à partir de la petite.
4. Pour ce faire, il suffit de faire correspondre :
- au pixel (0,0), le pixel (0,0) puis (1,0),(0,1),(1,1);
- au pixel (1,0), le pixel (2,0) puis (3,0),(2,1),(3,1) ;
- au pixel (0,1), le pixel (0,2) puis (1,2),(0,3),(1,3) ;
- au pixel (1,1), le pixel (2,2) puis (3,2),(2,3),(3,3) ;
- au pixel (0,2), le pixel (0,4) puis (1,4),(0,5),(1,5) ;
- au pixel (1,2), le pixel (2,4) puis (3,4),(2,5),(3,5).
Plus généralement : au pixel (x,y) on associera le pixel (2x , 2y) puis (2x+1,2y), (2x, 2y+1),
(2x+1,2y+1).
Vision par ordinateur département informatique
Niveau : FIA3-GL-AL
Annexe
La couleur d'un pixel est faite à partir d'un mélange de trois couleurs fondamentales : Le
rouge(255,0,0) , le vert ( 0,255,0) et le bleu(0,0,255). Pour la couleur noir (0,0,0) et le blanc
(255,255,255)
Définir les bibliothèques:
import numpy as np # Calcul numérique
import [Link] as plt # Tracé
import PIL # Gestion des formats != png
les fonctions de base
im = [Link](path) #charge la photo dans la variable
[Link]() #on montre l'image
print ([Link], [Link]) # obtenir des informations sur cette photo
[Link] ("[Link]’’, ‘png’) #Enregistrer une photo sous un autre format
im2=[Link](mode,size) # Créer une nouvelle image
pixels=[Link] ((0,0)) # retourner la valeur du pixel en haut à gauche de l’image.
[Link] ((x,y),p) # affecter la valeur p au pixel de coordonnées (x,y).
[Link](img) # affichage d’une image