Afficher une image#
Création d’un notebook#
Un notebook est un fichier portant l’extension ipynb qui contient du code (Python) et du texte avec mise en forme (Markdown). Il est composé de plusieurs cellules, chacune étant soit du code, soit du texte.
Sous Linux, ouvrez un terminal (
Ctrl
+Alt
+T
) et exécutez Jupyter Lab :jupyter lab
oujupyter-lab
.Dans Jupyter Lab, ouvrez un notebook et renommez-le :
File
>Save Notebook As...
.Configurez la première cellule du notebook pour être en Markdown en sélectionnant Markdown dans la liste déroulante de la barre d’outils. Écrivez ensuite dans la cellule :
# TP 1 - exercice 1 Une image est une fonction $f$ de $\mathbb{N}^d$ dans $\mathbb{R}^B$.
puis tapez
Shift
+Return
: le code est exécuté, le résultat s’affiche et une nouvelle cellule apparaît.Dans la cellule nouvellement créée (que vous laissez au format Code), tapez :
import skimage.io as io import matplotlib.pyplot as plt
puis
Shift
+Return
pour importer le module scikit-image que nous utiliserons à chaque TP.De temps en temps, cliquez sur dans la barre d’outils pour réinitialiser et relancer complètement le notebook : cela vous évitera de traîner des bugs.
Affichage d’une image en couleur#
Chargez l’image schtroumpf.jpg et enregistrez-la dans le même dossier que votre notebook.
Dans une troisième cellule du notebook, chargez l’image :
f = io.imread("schtroumpf.jpg")
and affichez-la:
plt.imshow(f)
Affichez les dimensions de l’image :
print(f.shape)
Pourquoi obtenez-vous trois valeurs ?
Affichez le type de données codant l’image :
print(f.dtype)
Sur combien d’octets sont codés les pixels de cette image ?
Affichez la couleur du pixel \((150,150)\) :
f[150,150]
À quelle couleur correspond-t-il ?
Exécutez le code ci-dessous et expliquez le résultat obtenu.
g = f.copy() g[:, :, [0,1,2]] = f[:, :, [1,0,2]] plt.imshow(g)
Affichage d’une image à niveaux de gris#
La conversion d’une image couleur en niveau de gris s’effectue en remplaçant chaque pixel de valeurs \((r,g,b)\) en un pixel d’intensité \(x\) tel que \(x = 0.2125 \, r + 0.7154 \, g + 0.0721 \, b\). Les coefficients ont été définis à partir de mesures psychovisuelles et de façon à garantir que \(x\in[0,1]\) si \(r,g,b\in[0,1]\).
Convertissez l’image couleur en niveaux de gris (
skimage.color.rgb2gray
).Affichez l’image à niveau de gris \(g\) en ajoutant également la barre de couleur et les valeurs minimales et maximales de ses pixels :
plt.imshow(g) plt.colorbar() print(g.min()) print(g.max())
Utilisez l’argument
cmap
deimshow
pour modifier la palette des couleurs (colormap). Pour cela, consultez l’aide de la fonction :help(plt.imshow)
Affichez le profil d’intensité de la colonne 260 :
plt.plot(g[:,260])
À quoi correpondent la droite décroissante et les deux pics vers le bas ?