MECA653: Traitement d’image sur une carte de l’Europe¶
On vous demande de travailler une image topographique de l’Europe. Téléchargez l’image et sauvergardez la dans votre répertoire de travail. Notez qu’un pixel représente 1 km de coté.
from PIL import Image # On charge Python Image Library
import numpy as np # On charge Numpy
from matplotlib import pyplot as plt # On charge pyplot (un sous module de Matplotlib) et on le renomme plt
from matplotlib import cm
from scipy import ndimage
%matplotlib nbagg
im = Image.open('europe.tif') # PIL permet de lire tous les formats d'images
Nx, Ny = im.size # On reduit la definition de l'image
Z = np.array(im).astype(np.float64) # On convertir l'image en array
max_altitude = 1000. # Altitude maximale en metres, cette donnee est un peu douteuse, (a confirmer).
Z = Z / Z.max() * max_altitude # On recale les altitudes
Z = Z[::4, ::4] # Sous échantillonage
# AFFICHAGE
plt.figure()
plt.imshow(Z, cmap = cm.terrain, interpolation = "nearest") # Affichage de l'altitude
cbar = plt.colorbar() # Ajout d'une barre d'echelle
cbar.set_label('Altitude $m$') # On specifie le label en z
plt.xlabel('$km$') # On specifie le label en x
plt.ylabel('$km$') # On specifie le label en y
plt.title('Altitudes en Europe') # On specifie le titre
plt.grid()
plt.show() # On affiche l'image
<IPython.core.display.Javascript object>