Méthode imshow() de Matplotlib

La fonction imshow() est une fonction de la bibliothèque Matplotlib, utilisée pour afficher des images.

La fonction imshow() est souvent utilisée pour tracer des images en niveaux de gris ou en couleur en deux dimensions.

La fonction imshow() peut être utilisée pour tracer des matrices, des cartes de chaleur, des cartes, etc.

La syntaxe de la méthode imshow() est la suivante :

imshow(X, cmap=None, norm=None, aspect=None, interpolation=None, alpha=None, vmin=None, vmax=None, origin=None, extent=None, shape=None, filternorm=1, filterrad=4.0, imlim=None, resample=None, url=None, *, data=None, **kwargs)

Description du paramètre :

  • X: Données d'entrée. Il peut s'agir d'un tableau bidimensionnel, d'un tableau tridimensionnel, d'un objet image PIL, d'un objet path matplotlib, etc.
  • cmap: Palette de couleurs. Utilisée pour contrôler les couleurs correspondant aux différentes valeurs de l'image. Vous pouvez choisir une palette de couleurs intégrée, telle quegray、hot、jetetc., ou vous pouvez également personnaliser une palette de couleurs.
  • norm: Utilisé pour contrôler la méthode de normalisation des valeurs. Vous pouvez choisirNormalize、LogNormet d'autres méthodes de normalisation.
  • aspect: Contrôle le rapport d'aspect de l'image. Peut être défini surautoou un nombre.
  • interpolation: Méthode d'interpolation. Utilisée pour contrôler la douceur et le niveau de détail de l'image. Vous pouvez choisirnearest、bilinear、bicubicet d'autres méthodes d'interpolation.
  • alpha: Transparence de l'image. La plage de valeurs est 0~1.
  • origin: La position de l'origine des axes. Peut être définie surupperoulower。
  • extent: Contrôle la plage de données à afficher. Peut être définie sur[xmin, xmax, ymin, ymax]。
  • vmin、vmax: Contrôle la plage de valeurs de la palette de couleurs.
  • filternorm 和 filterrad: L'objet utilisé pour le filtrage d'image. Peut être défini surNone、antigrain、freetypeetc.
  • imlim: Utilisé pour spécifier la plage d'affichage de l'image.
  • resample: Utilisé pour spécifier la méthode de rééchantillonnage de l'image.
  • url: Utilisé pour spécifier le lien de l'image.

Vous trouverez ci-dessous quelques exemples d'utilisation de la fonction imshow().

Afficher une image en niveaux de gris

Exemple

import matplotlib.pyplot as plt
import numpy as np

# Générer un tableau aléatoire bidimensionnel
img = np.random.rand(10, 10)

# Tracer l'image en niveaux de gris
plt.imshow(img, cmap='gray')

# Afficher l'image
plt.show()

Dans l'exemple ci-dessus, nous avons généré un tableau aléatoire 10x10 et utilisé la fonction imshow() pour l'afficher comme une image en niveaux de gris.

Nous avons défini le paramètre cmap sur gray, ce qui signifie que l'image sera affichée en utilisant une palette de couleurs en niveaux de gris.

Le résultat de l'affichage est le suivant :

Afficher une image en couleur

Exemple

import matplotlib.pyplot as plt
import numpy as np

# Générer une image couleur aléatoire
img = np.random.rand(10, 10, 3)

# Tracer l'image en couleur
plt.imshow(img)

# Afficher l'image
plt.show()

Dans l'exemple ci-dessus, nous avons généré une image couleur aléatoire 10x10 et utilisé la fonction imshow() pour l'afficher.

Comme une image couleur est un tableau tridimensionnel, il n'est pas nécessaire de définir le paramètre cmap.

Le résultat de l'affichage est le suivant :

Afficher une carte de chaleur

Exemple

import matplotlib.pyplot as plt
import numpy as np

# Générer un tableau aléatoire bidimensionnel
data = np.random.rand(10, 10)

# Tracer la carte de chaleur
plt.imshow(data, cmap='hot')

# Afficher l'image
plt.colorbar()
plt.show()

Dans l'exemple ci-dessus, nous avons généré un tableau aléatoire 10x10 et utilisé la fonction imshow() pour l'afficher sous forme de carte de chaleur.

Nous avons défini le paramètre cmap sur hot, ce qui signifie que l'image sera affichée à l'aide d'une palette de couleurs thermiques.

De plus, nous avons également ajouté une barre de couleurs afin de visualiser la relation entre les valeurs des données et les couleurs.

Le résultat de l'affichage est le suivant :

Afficher la carte

Exemple

import matplotlib.pyplot as plt
import numpy as np
from PIL import Image

# Charger l'image de la carte, URL de téléchargement : /static.jyshare.com/images/demo/map.jpeg
img = Image.open('map.jpg')

# Convertir en tableau
data = np.array(img)

# Tracer la carte
plt.imshow(data)

# Masquer les axes
plt.axis('off')

# Afficher l'image
plt.show()

Dans l'exemple ci-dessus, nous avons chargé une image de carte et l'avons convertie en tableau.

Ensuite, nous avons utilisé la fonction imshow() pour l'afficher, et utilisé la fonctionaxis('off')pour masquer les axes, afin de mieux voir la carte.

Le résultat de l'affichage est le suivant :

Afficher la matrice

Exemple

import matplotlib.pyplot as plt
import numpy as np

# Générer une matrice aléatoire
data = np.random.rand(10, 10)

# Tracer la matrice
plt.imshow(data)

# Afficher l'image
plt.show()

Dans l'exemple ci-dessus, nous avons généré une matrice aléatoire et utilisé la fonction imshow() pour l'afficher comme une image.

Comme une matrice est aussi un tableau à deux dimensions, la fonction imshow() peut être utilisée pour l'afficher.

Le résultat de l'affichage est le suivant :


Plus d’exemples

Ce qui suit crée un tableau numpy à deux dimensions 4x4 et effectue trois affichages d'image imshow différents sur celui-ci.

  • Le premier montre la méthode de mappage de couleurs en niveaux de gris, sans effectuer de mélange de couleurs.
  • Le deuxième montre une image en utilisant la carte de couleurs viridis, également sans effectuer de mélange de couleurs.
  • Le troisième montre une image en utilisant la carte de couleurs viridis, et utilise la méthode d'interpolation bicubique pour le mélange de couleurs.

Exemple

import matplotlib.pyplot as plt
import numpy as np

n = 4

# Créer un tableau numpy à deux dimensions n x n
a = np.reshape(np.linspace(0,1,n**2), (n,n))

plt.figure(figsize=(12,4.5))

# La première image montre la méthode de mappage des couleurs en niveaux de gris, sans effectuer de mélange de couleurs
plt.subplot(131)
plt.imshow(a, cmap='gray', interpolation='nearest')
plt.xticks(range(n))
plt.yticks(range(n))
# Mappage en niveaux de gris, sans mélange
plt.title('Carte de couleurs en niveaux de gris, sans mélange', y=1.02, fontsize=12)

# La deuxième image montre une image utilisant la carte de couleurs viridis, également sans effectuer de mélange de couleurs
plt.subplot(132)
plt.imshow(a, cmap='viridis', interpolation='nearest')
plt.yticks([])
plt.xticks(range(n))
# Mappage viridis, sans mélange
plt.title('Palette de couleurs Viridis, sans mélange', y=1.02, fontsize=12)

# La troisième image montre une image utilisant la palette de couleurs viridis, et utilise la méthode d'interpolation bicubique pour le mélange des couleurs
plt.subplot(133)
plt.imshow(a, cmap='viridis', interpolation='bicubic')
plt.yticks([])
plt.xticks(range(n))
# Mappage Viridis, mélange bicubique
plt.title('Palette de couleurs Viridis, mélange bicubique', y=1.02, fontsize=12)

plt.show()

Le résultat de l'affichage est le suivant :

Autres extensions