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).
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, \(\ldots\)
numpy ;
numpy comme une image ;
bhM87 de manière à faire apparaître un
rectangle bleu ;
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 :
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 \(255\)) :
bhM87_brighter_red = bhM87 + [100,0,0]
bhM87_brighter_red[bhM87_brighter_red > 255] = 255
