
Pillow ist eine von PIL (Python Image Library) abgeleitete Bildverarbeitungsbibliothek. Da sich PIL nicht mehr in der Entwicklung befindet, wird Pillow jetzt weit verbreitet verwendet.
Pillow ist der „freundliche PIL-Gabel“ von Alex Clark and Contributors. PIL ist die Python Imaging Library von Fredrik Lundh und Contributors.
Kissen — Kissen (PIL Fork) 4.2.1 Dokumentation
Obwohl eine erweiterte Bildverarbeitung (Gesichtserkennung, optischer Fluss usw.) wie OpenCV nicht durchgeführt werden kann, kann eine einfache Bildverarbeitung wie Größenänderung (Skalieren), Drehen und Trimmen (Teilausschnitt) durchgeführt werden.
Da Pillow und einfacher verständlicher ist als OpenCV, ist es besser, es je Zweck zu verwenden.
Dieser Artikel hat folgenden Inhalt.
- Installieren
- Grundlegende Verwendung
- Bild laden, bearbeiten, speichern
- Zeichnung
- Weitere Verarbeitungsbeispiele
Unter dem following Link FINDEN SIE Einzelne Artikel, in denen verschiedene Prozesse wie Größenänderung und Zuschneiden erläutert werden.
Installieren
Kissen können durch Pip installiert werden.
Kopfkissen und PIL können nicht nebeneinander bestehen. Wenn Sie beide installiert haben, sollten Sie beide deinstallieren und nur eines neu installieren.
Wenn Sie nicht wissen, was installiert ist, können Sie es wie folgt überprüfen:
Deinstallieren:
$ pip uninstall
Beachten Sie, dass SIE bei Verwendung von Python 3 abhängig von Ihrer Umgebung möglicherweise pip3 anstelle von pip verwenden müssen.
Siehe den following Artikel für praktische Operationen von pip.
Grundlegende Verwendung
Das offizielle Dokument ist leicht verständlich.
Bild laden, bearbeiten, speichern
Lesen Sie die Bilddatei. Sie, dass der Name des zu importierenden Pakets PIL und nicht Kissen ist.
from PIL import Image, ImageFilter
im = Image.open('data/src/lenna_square.png')
Erhalten Sie Metainformationen wie Format, Größe (Breite, Höhe), Modus usw. Die Größe wird durch (Breite, Höhe) wiedergegeben.
print(im.format, im.size, im.mode)
# PNG (512, 512) RGB
Holen Sie sich den Mindest- und Höchstwert jeder RGB-Farbe.
print(im.getextrema())
# ((54, 255), (3, 248), (8, 225))
Ruft den Pixelwert der angegebenen Koordinate ab. Der Koordinatenursprung (0, 0) ist oben links.
print(im.getpixel((256, 256)))
# (180, 65, 72)
Als Beispiel WIRD Eine Verarbeitung Einer Graustufenumwandlung (convert(‚L‘)), einer Drehung um 90 Grad (rotate(90)) und einer Gaußschen Unschärfe (filter()) durchgeführt.
new_im = im.convert('L').rotate(90).filter(ImageFilter.GaussianBlur())
Zeigen Sie Bilder mit der Standardsoftware des Betriebssystems an.
Speichern Sie das Bild.
new_im.save('data/dst/lenna_square_pillow.jpg', quality=95)
Beim Speichern mit save() unterscheiden sich die Parameter je nach Extension. Nichts finden Sie unter Bilddateiformat . Bei jpg können Sie die Qualität mit dem Parameter quality festlegen. Der Standardwert ist 75 für 1 (niedrigste) bis 95 (höchste).
Das Originalbild und das Bild nach der Verarbeitung sind wie folgt.


Zeichnung
Sie können auch Figuren zeichnen.
Verwenden Sie das ImageDraw-Modul . Siehe auch den following Artikel für Details.
Erstellen Sie zunächst ein solides Bild. Geben Sie die Größe im zweiten Argument und die RGB-Farben im dritten Argument an.
from PIL import Image, ImageDraw, ImageFont
im = Image.new("RGB", (512, 512), (128, 128, 128))
Geben Sie das Image-Objekt als Argument an und erstellen Sie ein Draw-Objekt.
draw = ImageDraw.Draw(im)
Zeichnen Sie gerade Linien, Rechtecke und Ellipsen.
draw.line((0, im.height, im.width, 0), fill=(255, 0, 0), width=8)
draw.rectangle((100, 100, 200, 200), fill=(0, 255, 0))
draw.ellipse((250, 300, 450, 400), fill=(0, 0, 255))
Zeichnet Text mit der angegebenen Schriftart.
font = ImageFont.truetype('/Library/Fonts/Arial Bold.ttf', 48)
draw.multiline_text((0, 0), 'Pillow sample', fill=(0, 0, 0), font=font)
Das Ergebnis ist wie folgt:

In diesem Beispiel wird zuerst ein festes Bild erzeugt, aber es ist auch möglich, eine Bilddatei zu lesen und darauf Figuren und Text zu zeichnen.
Weitere Verarbeitungsbeispiele
Hier sind einige Beispiele für die Bildverarbeitung mit Pillow (PIL). Halbleiter und Beispielcode finden Sie in den verlinkten Artikeln.
Fügen Sie ein weiteres Bild in das Bild ein
Fügen Sie ein weiteres Bild auf dem Hintergrundbild ein.
Neben Rechtecken ist es auch möglich, mithilfe eines Maskenbildes beliebige Formen auszuschneiden und einzufügen, z. B. einen Kreis.
Kombinieren Sie zwei Bilder
Kombinieren Sie zwei Bilder derselben Größe.
Sie können nach einem Maskenbild komponieren. Ein Gradationsbild kann als Maske used Werden, um ein Bild zu erstellen, das sich täglich ändert.
Verketten Sie mehrere Bilder
Mehrere Bilder können vertikal oder horizontal angeordnet werden, um ein verkettetes Bild zu erstellen.
Transparentes PNG-Bild erstellen
Erstellen Sie ein transparentes PNG-Bild mit einem Alphakanal.
Diese kann auch in beliebiger Form maskiert werden.
Negativ-Positiv-Inversion (Pixelwert invertieren)
Es wird ein Negativ-Positiv-Umkehrbild (Bild mit invertierten Pixelwerten) erzeugt.
Erstellen Sie kreisförmige oder quadratische Miniaturbilder
Erstellen Sie Miniaturbilder aus großen Bildern.
Sie können die Mitte ausschneiden, Ränder hinzufügen, um es beliebig groß zu machen, oder es kreisförmig zu machen. Es ist auch möglich, mehrere Bilder gleichzeitig zu verarbeiten.
Animiertes GIF erstellen
Sie können animierte GIF-Bilder sowie JPG- und PNG-Dateien erstellen.