Comment importer et tourner une image avec matplotlib ?

Published: 02 mai 2021

Tags: Python; Scipy; Matplotlib; Image; Numpy;

DMCA.com Protection Status

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()

 Comment importer et tourner une image avec matplotlib  ?
Comment importer et tourner une image avec matplotlib ?

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()

 Comment lire, tourner et tracer une image RGB avec scipy et matplotlib en python ?
Comment lire, tourner et tracer une image RGB avec scipy et matplotlib en python ?

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

Comment lire, tourner et tracer une image RGB avec scipy et matplotlib en python ?
Comment lire, tourner et tracer une image RGB avec scipy et matplotlib en python ?

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

Comment lire, tourner et tracer une image RGB avec scipy et matplotlib en python ? Comment lire, tourner et tracer une image RGB avec scipy et matplotlib en python ? Comment lire, tourner et tracer une image RGB avec scipy et matplotlib en python ?
Comment lire, tourner et tracer une image RGB avec scipy et matplotlib en python ? Comment lire, tourner et tracer une image RGB avec scipy et matplotlib en python ? Comment lire, tourner et tracer une image RGB avec scipy et matplotlib en python ?
Comment lire, tourner et tracer une image RGB avec scipy et matplotlib en python ? Comment lire, tourner et tracer une image RGB avec scipy et matplotlib en python ? Comment lire, tourner et tracer une image RGB avec scipy et matplotlib en python ?
Comment lire, tourner et tracer une image RGB avec scipy et matplotlib en python ?

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

Comment lire, tourner et tracer une image RGB avec scipy et matplotlib en python ?
Comment lire, tourner et tracer une image RGB avec scipy et matplotlib en python ?

Références

Image

of