Académique Documents
Professionnel Documents
Culture Documents
INFORMATIQUE CI 9 TP06
TRAITEMENT D’IMAGES
Il est pratique d’afficher simultanément plusieurs images dans une figure avec la fonction
plt.subplot(). Les instructions suivantes affichent 2 images im1 et im2 dans chacun des 2 subplots
d’une figure :
Remarques
– l’argument interpolation = ’’nearest’’ spécifie à plt de ne pas faire d’interpolation entre les pixels
(enlevez le pour tester son effet).
– Par défaut, imshow normalise les données par leur min et leur max . On peut désactiver cette
normalisation en spécifiant manuellement les bornes, en ajoutant à l’appel de imshow les arguments
vmin et vmax .. (cf https://matplotlib.org/3.1.3/api/_as_gen/matplotlib.pyplot.imshow.html )
– on peut désactiver les axes et graduations avec plt.axis(’off’) .
Formes rectangulaires
1-. Image noir & blanc : créer un tableau de zeros de taille L x C nommé im1 :
im1=np.zeros((L,C)) , avec L = 10 et C = 15.
Exécuter la commande im1[2:6,10:12] = 1, ce qui met à 1 tous les pixels (l; c),
tels que
l ∈ [2; 6] et c ∈ [10; 12].
Utiliser l’argument cmap=’gray’ dans plt.imshow pour avoir une image en noir
et blanc
Faire afficher l’image. (tester aussi l’interpolation entre pixels)
Remarque : pour suivre les entités manipulées, utiliser la commande print() pour voir le contenu des
tableaux crées dans les différentes parties de ce TP
Mettre à 1 la 2ème coordonnée (le Vert), de tous les pixels (l; c), tels que l ∈ [2; 8] et c ∈ [4; 6].
Mettre à 1 le Bleu de tous les pixels (l; c), tels que l ∈ [2; 8] et c ∈ [10; 12].
Créer Im3[:,:,0] comme une image de niveaux de gris et afficher Im3 en ajoutant dans plt.imshow
l’argument cmap=’gray’ .
A ce stade, vous devez maîtriser la manière de créer une image codée sous forme de tableau
2- Manipulation d’images
La bibliothèque matplotlib. pyplot comporte des fonctionnalités de lecture et d'affichage des images
"bitmap" comme de simples matrices de pixels. Cela permet de s'affranchir de la lecture et du
décodage spécifique de l'en-tête d'un fichier (header), qui comporte des informations d'identification
du format de l'image, du nombre de lignes et de colonnes, de description éventuelle de la palette
couleur, etc.
Elle renvoie une matrice (numpy.array) d'éléments correspondant au codage couleur utilisé ( 1
élément (valeur) pour une image en niveau de gris, liste de 3 valeurs pour un codage RVB ou
YUC(luminance et chrominance), 4 valeurs pour un codage RVBA (RVB + transparence)).
La fonction shape de numpy permet alors de récupérer les informations de format de l'image
(hauteur, largeur, nb couleur utilisés pour son codage).
La fonction imshow(image1) permet d'afficher dans une figure le contenu de la variable image en
tant que photo.
Compléter le script pour pouvoir charger les 2 formats d’image : image01 ;bmp et image01.png et
comparer les caractéristiques des 2 formats d’image.
Les instructions d'affectation en Python ne copient pas les objets, elles créent des liens entre la cible
et l'objet. Concernant les collections qui sont muables ou contiennent des éléments muables, une
copie est parfois nécessaire, pour pouvoir modifier une copie sans modifier l'autre
Nous allons utiliser le module copy
: CI9_TP06 Traitement d images_v20.doc- Page 3 sur 4
Créé le 03/02/2021 – 04/02/2021
INFORMATIQUE
INFORMATIQUE CI 9 TP06
Première version :
Compléter le script suivant
Deuxième version :
Compléter le script pour faire afficher l’image d’origine et sa copie inversée :
4- Symétrie
Ecrire une fonction symetrie(image) qui renvoie l’image symétrique
Cette fonction pourra s’appuyer sur a première version du script inverser