Comment retourner / inverser verticalement une image en python ?


Exemples de comment retourner / inverser une image avec numpy sous python:

Obtenir une image retournée avec pillow

Pour retourner une image avec pillow une solution est d'utiliser la fonction rotate(), exemple:

from PIL import Image

im = Image.open("eiffel_tower.jpg")

im = im.rotate(180)

im.save("eiffel_tower_fliped_vertically.jpg")

Comment retourner / inverser une image en python ?

On peut aussi utiliser la fonction flip():

from PIL import Image
from PIL import ImageOps

im = Image.open("eiffel_tower.jpg")

im = ImageOps.flip(im)

im.save("eiffel_tower_fliped_vertically.jpg")

Obtenir une image retournée avec numpy

Autre solution, utiliser numpy et la fonction flipud, illustration:

import numpy as np 
import matplotlib.pyplot as plt
import matplotlib.image as mpimg

img = mpimg.imread('eiffel_tower.jpg')

img2 = np.flipud(img)
plt.imshow(img2)

plt.savefig("eiffel_tower_fliped_vertically.png", dpi=200)
plt.show()

Note: pour sauvegarder une figure avec matplotlib sans les axes voir: Comment sauver une image seule sans les contours ou les labels avec matplotlib ?

Références

Liens Site
numpy.flipud numpy doc
Comment sauver une image seule sans les contours ou les labels avec matplotlib ? science-emergence article
Image Module illow.readthedocs.io
ImageOps Module pillow.readthedocs.io
Flopped image wikipedia
Flipped image wikipedia
Flip An Image docs.gimp.org
PIL - Images not rotating stackoverflow
Image rotation in Pillow stackoverflow
pixabay pixabay
Image

of