Botafogo

Affichage, manipulation et sauvegarde d’images

Outre les représentations graphiques de fonctions et de données, Matplotlib permet de manipuler très facilement des images. Ainsi, le code suivant permet par exemple d’afficher (et éventuellement de manipuler) l’image du trou noir déjà évoquée en introduction. Ici, l’image blackhole.jpg chargée ne contient pas de canal lié à la transparence et est de la forme (932, 1600, 3).

python
import numpy as np
import matplotlib.pyplot as plt
# lecture et conversion de l'image
import matplotlib.image as mpimg
bhM87 = mpimg.imread("blackhole.jpg") # forme : (932, 1600, 3)
# affichage de l'image
plt.imshow(bhM87)
plt.show()
# traitement de l'image
bhM87[100:400,100:200,:] = [0,0,255]
# sauvegarde de l'image
mpimg.imsave("blackhole_modifie.png", bhM87)
Affichage de l’image originale Black Hole M87 (Event Horizon Telescope Collaboration) :
Plus précisément,

  • les lignes 4 et 5 permettent d’importer l’image dans un tableau numpy ;
  • les lignes 7 et 8 permettent d’afficher le tableau numpy comme une image ;
  • la ligne 10 traite l’image en modifiant certains éléments du tableau bhM87 de manière à faire apparaître un rectangle bleu ;
  • la ligne 12 permet de sauvegarder le tableau manipulé sous la forme d’une image.
Image manipulée (ajout d’un rectangle bleu) :
Le fait de travailler avec des tableaux numpy permet de modifier (traiter) très facilement les images. Ainsi, il est par exemple facile de retourner horizontalement l’image obtenue ci-dessus en rajoutant une ligne de code qui inverse les colonnes du tableau :
python
bhM87 = bhM87[:,::-1,:]
Il est également très facile d’augmenter la luminosité du canal rouge en complétant le code avec les deux lignes suivantes (la seconde ligne permet de s’assurer qu’aucune valeur dans la troisième dimension du tableau ne dépasse ) :
python
bhM87_brighter_red = bhM87 + [100,0,0]
bhM87_brighter_red[bhM87_brighter_red > 255] = 255

Polycopié rédigé par Roger Sauser, CMS. Sauf indication contraire, le contenu de ce document est soumis à une licence Creative Commons internationale, Attribution - Utilisation non commerciale - Partage dans les mêmes conditions 4.0 International (CC BY-NC-SA 4.0).

© 2026 Projet Botafogo. En savoir plus.