Matplotlib offre une variété de fonctions pour charger et afficher des images. La plupart des fonctions d'imagerie sont disponibles dans le sous-module « matplotlib.pyplot ».
Pour charger une image, vous pouvez utiliser la fonction « imread ». Cette fonction lit une image à partir d'un fichier et renvoie un tableau NumPy (read only)
import matplotlib.pyplot as plt
# Charger une image
img = plt.imread("bact2.png")
print("L'image est de type", type(img))
print("Ses dimensions sont ", img.shape) # Une image en trois dimensions car trois plans de couleurs (RGB)
L'image est de type <class 'numpy.ndarray'> Ses dimensions sont (1024, 1024, 3)
Pour afficher l'image, vous devez utiliser la fonction « imshow »
plt.imshow(img)
plt.show()
Si vous le souhaitez, vous pouvez retirer les axes de l'affichage.
plt.imshow(img)
plt.axis('off')
plt.show()
Il est possible de ne récupérer qu'un unique plan de couleur (parmis les plans RGB ou RGBA). Dans l'exemple suivant je récupère uniquement que le plan associé à la composante verte (l'image étant principalement verte). Si vous l'affichez tel quel, une palette de couleur par défaut sera utilisée.
import matplotlib.pyplot as plt
# On charge notre image et on affiche ses dimensions.
img = plt.imread("bact2.png")
# On ne conserve que le plan de couleur Green (vert) et on affiche ses dimensions.
img2 = img[:, :, 1] # 0 = Red; 1 = Green; 2 = Blue
# On affiche ce plan de couleur avec la palette par défaut.
plt.imshow(img2)
plt.axis('off')
plt.show()
Pour afficher l'image en noir et blanc, il suffit de changer la palette de couleurs à utiliser (cmap = Color Map).
Deux possibilités sont envisageables : la palette « gray » ou la palette « gray_r » (ou le dégradé est inversé : r pour reverse).
import matplotlib.pyplot as plt
# On charge notre image et on affiche ses dimensions.
img = plt.imread("bact2.png")
# On ne conserve que le plan de couleur Green (vert) et on affiche ses dimensions.
img2 = img[:, :, 1] # 0 = Red; 1 = Green; 2 = Blue
# On affiche ce plan de couleur avec la palette gray.
plt.imshow(img2, cmap="gray")
plt.axis('off')
plt.show()
import matplotlib.pyplot as plt
# On charge notre image et on affiche ses dimensions.
img = plt.imread("bact2.png")
# On ne conserve que le plan de couleur Green (vert) et on affiche ses dimensions.
img2 = img[:, :, 1] # 0 = Red; 1 = Green; 2 = Blue
# On affiche ce plan de couleur avec la palette gray_r (gray reverse).
plt.imshow(img2, cmap="gray_r")
plt.axis('off')
plt.show()
Bien entendu, vous pouvez opter pour d'autres palettes de couleurs.
import matplotlib.pyplot as plt
# On charge notre image et on affiche ses dimensions.
img = plt.imread("bact2.png")
# On ne conserve que le plan de couleur Green (vert) et on affiche ses dimensions.
img2 = img[:, :, 1] # 0 = Red; 1 = Green; 2 = Blue
# On affiche ce plan de couleur avec la palette coolwarm.
plt.imshow(img2, cmap="coolwarm")
plt.axis('off')
plt.show()
import matplotlib.pyplot as plt
# On charge notre image et on affiche ses dimensions.
img = plt.imread("bact2.png")
# On ne conserve que le plan de couleur Green (vert) et on affiche ses dimensions.
img2 = img[:, :, 1] # 0 = Red; 1 = Green; 2 = Blue
# On affiche ce plan de couleur avec la palette jet.
plt.imshow(img2, cmap="jet")
plt.axis('off')
plt.show()