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

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)

Rotation de 45 degrés.
im_rotate = im.rotate(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)

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)

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

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

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)

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

Faites pivoter de 45 degrés et traduisez :
im_rotate = im.rotate(45, translate=(100, 50))

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)

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)

