Skip to content

Python, Oreiller : Faire pivoter une image

Le module Image de la bibliothèque de traitement d’image Python Pillow(PIL) fournit la méthode rotate() pour faire pivoter une image.

Cet article décrit chaque paramètre de rotate().

  • Angle de rotation:angle
  • Filtres de rééchantillonnage :resample
  • Agrandir la taille de l’image de sortie :expand
  • Coordonnées du centre de rotation :center
  • Traduction:translate
  • Couleur pour la zone extérieure :fillcolor

Veuillez vous référer à l’article suivant pour l’installation et l’utilisation de base de Pillow(PIL).

Utilisez flip() et mirror() du module ImageOps pour retourner l’image verticalement ou horizontalement.

Voir l’article suivant pour la rotation des images avec OpenCV, NumPy.

Chargez les images comme suit :

from PIL import Image

im = Image.open('data/src/lena.jpg')

avec

Angle de rotation:angle

Dans rotate(), spécifiez l’angle de rotation en degrés comme premier angle de paramètre. Le sens de rotation est antihoraire.

Rotation de 90 degrés :

im_rotate = im.rotate(90)

Oreiller pivoter 90

Rotation de 45 degrés.

im_rotate = im.rotate(45)

Oreiller tourner 45

Filtres de rééchantillonnage :resample

Le paramètre resample peut être utilisé pour spécifier le filtre de rééchantillonnage.

  • Image.NEAREST (Voisin le plus proche, par défaut)
  • Image.BILINEAR
  • Image.BICUBIC

Avec Image.BICUBIC, les détails sont plus clairs que Image.NEAREST par défaut.

im_rotate = im.rotate(45, resample=Image.BICUBIC)

Oreiller tourner 45 bicubique

Agrandir la taille de l’image de sortie :expand

Comme on peut le voir sur l’image de sortie de l’exemple ci-dessus, par défaut, la taille de l’image de sortie est égale à la taille de l’image d’entrée et les parties en dehors de la région sont tronquées.

Si vous souhaitez conserver l’intégralité de l’image pivotée, définissez le paramètre expand sur True.

im_rotate = im.rotate(90, expand=True)

Rotation de l'oreiller à 90°

im_rotate = im.rotate(45, expand=True)

Oreiller tourner 45 étendre

Coordonnées du centre de rotation :center

Vous pouvez spécifier la position du centre de rotation avec le paramètre center. Par défaut, center est le centre de l’image.

im_rotate = im.rotate(45, center=(0, 60))

Rotation de l'oreiller 45 centre de changement

Dans le cas de expand=True, la zone d’image de sortie est déterminée en supposant que l’image est tournée autour du centre de l’image.

im_rotate = im.rotate(45, center=(0, 60), expand=True)

Rotation de l'oreiller 45 changement de centre

Traduction:translate

Vous pouvez traduire avant la rotation avec le paramètre translate. translate est spécifié par (distance de translation dans la direction x, distance de translation dans la direction y).

Sans rotation :

im_rotate = im.rotate(0, translate=(100, 50))

Oreiller tourner 0 traduire

Faites pivoter de 45 degrés et traduisez :

im_rotate = im.rotate(45, translate=(100, 50))

Oreiller tourner 45 traduire

Si expand=True, la zone de l’image de sortie est déterminée en supposant que l’image est tournée sans translation.

im_rotate = im.rotate(45, translate=(100, 50), expand=True)

Oreiller tourner 45 traduire agrandir

Couleur pour la zone extérieure :fillcolor

Vous pouvez spécifier la couleur de la zone extérieure avec la couleur de remplissage. La couleur par défaut est le noir.

Dans le cas des images RVB, il est spécifié comme un tuple de (R, G, B).

im_rotate = im.rotate(45, fillcolor=(255, 128, 0), expand=True)

Rotation de l'oreiller 45 fillcolor expand