Exemples de comment importer et tourner une image avec matplotlib:
voir aussi comment importer et tourner une image avec pillow
Importer une image avec matploitlib
Avec matplotlib on peut directement importer une image comme ceci:
from matplotlib import image
img = image.imread("eiffel-tower.jpeg")
print( type(img) )
donne
<class 'numpy.ndarray'>
et
print( img.shape )
donne ici
(1280, 850, 3)
Tracer l'image avec matploitlib
On peut alors tracer l'image en utilisant imshow:
plt.imshow(img)
plt.show()
Tourner l'image avec scipy.ndimage
Pour tourner l'image, une solution consiste à utiliser scipy:
import scipy.ndimage as ndimage
angle = 45 # in degrees
new_data = ndimage.rotate(data, angle, reshape=True)
plt.imshow(new_data)
plt.savefig("rgb_image_rotation_scipy_matplotlib_02.png", bbox_inches='tight', dpi=100)
plt.show()
Remarque: "reshape = True" étend automatiquement la taille de l'image pour l'afficher entièrement.
Avec reshape=False
angle = 45 # in degrees
new_data = ndimage.rotate(data, angle, reshape=False)
plt.imshow(new_data)
plt.savefig("rgb_image_rotation_scipy_matplotlib_03.png", bbox_inches='tight', dpi=100)
plt.show()
donne
Créer une boucle pour faire tourner l'image sur plusieurs angles
for angle in np.linspace(0,360,9):
new_data = ndimage.rotate(data, angle, reshape=False)
plt.imshow(new_data)
plt.savefig("rgb_image_rotation_scipy_matplotlib_angle_{}.png".format(angle), bbox_inches='tight', dpi=100)
plt.show()
donne
Exemple d'application: créer une image animée (un gif)
On peut alors par example créer une image animée (voir comment créer une image animée (GIF) en utilisant python et Imagemagick)
import os
os.system("convert -delay 100 rgb_image_rotation_scipy_matplotlib_angle_* eiffel-tower.gif")
donne