Skip to content

Python, Pille: Bild rotieren

Python

Das Image-Modul der Python-Bildverarbeitungsbibliothek Pillow(PIL) stellt sterben rotation()-Methode zum Drehen eines Bildes bereit.

Dieser Artikel jeden genauen Parameter von rotation().

  • Drehwinkel:angle
  • Resampling-Filter:resample
  • Ausgabebildgröße erweitern:expand
  • Koordinaten des Rotationszentrums:center
  • Übersetzung:translate
  • Farbe für den Außenbereich:fillcolor

Informationen zur Installation und einfachen Verwendung von Pillow(PIL) finden Sie im following Artikel.

Verwenden Sie flip() und mirror() des ImageOps-Moduls, um das Bild vertikal oder horizontal zu spiegeln.

Siehe den folgenden Artikel zur Bilddrehung mit OpenCV, NumPy.

Laden Sie die Bilder wie folgt:

from PIL import Image

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

Lena

Drehwinkel:angle

Geben Sie in rotation() als ersten Parameter angle den Rotationswinkel in Grad an. Die Drehrichtung ist gegen den Bildschirm.

90 Grad drehen:

im_rotate = im.rotate(90)

Kissen um 90 drehen

45 Grad drehen.

im_rotate = im.rotate(45)

Kissendrehung 45

Resampling-Filter:resample

Mit dem Parameter resample kann der Resampling-Filter spezifiziert werden.

  • Image.NEAREST (Nächster Nachbar, Standard)
  • Bild.BILINEAR
  • Bild.BICUBIC

Mit Image.BICUBIC sind die Details klarer als mit dem Standard Image.NEAREST.

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

Kissen um 45 bikubisch drehen

Ausgabebildgröße erweitern:expand

Wie aus dem Ausgabebild des Beispiels Beispiels ersichtlich IST, IST sterben Größe des Ausgabebilds standardmäßig gleich der Größe des Eingabebilds, und Teile des äußeren Bereichs werden abgeschnitten.

Wenn SIE das gesamte gedrehte Bild beibehalten möchten, setzen SIE den Parameter expand auf True.

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

Kissen um 90° drehen und ausdehnen

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

Kissen drehen 45 erweitern

Koordinaten des Rotationszentrums:center

Mit dem Parameterzentrum können Sie die Position des Rotationszentrums festlegen. Standardmäßig ist das Zentrum die Mitte des Bildes.

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

Kissendrehung 45 Wechselzentrum

Bei expand=True WIRD der Ausgabebildbereich unter der Annahme bestimmt, dass das Bild um die Bildmitte gedreht WIRD.

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

Kissen drehen 45 Wechselzentrum erweitern

Übersetzung:translate

Mit dem Parameter translate can SIE vor der Rotation übersetzen. translate wird durch angegeben (Translationsabstand in x-Richtung, Translationsabstand in y-Richtung).

Ohne Rotation:

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

Kissen drehen 0 übersetzen

Um 45 Grad drehen und übersetzen:

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

Kissen drehen 45 übersetzen

If expand=True, WIRD der Ausgabebildbereich unter der Annahme bestimmt, dass das Bild ohne Verschiebung gedreht WIRD.

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

Kissen drehen 45 übersetzen expandieren

Farbe für den Außenbereich:fillcolor

Mit Fillcolor können Sie die Farbe für den Außenbereich festlegen. Die Standardfarbe ist schwarz.

Bei RGB-Bildern wird es als Tupel von (R, G, B) angegeben.

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

Kissen drehen 45 Füllfarbe erweitern