Problem:
Wie können Sie ein PIL-Bild in ein NumPy-Array konvertieren? Führen Sie schnellere pixelweise Transformationen durch und laden Sie sie dann nach der Änderung wieder in das PIL-Bild Array?
Antwort:
Konvertierung in NumPy-Array:
Um ein PIL-Bild in ein NumPy-Array zu konvertieren, verwenden Sie den folgenden Code:
import numpy as np from PIL import Image pic = Image.open("foo.jpg") pix = np.array(pic)
Dadurch wird ein 3D-Array von Formen (Höhe, Breite, Kanäle), die Pixelwerte enthalten.
Konvertierung zurück in das PIL-Bild:
Um das geänderte Array zurück in das PIL-Bild zu laden, gibt es mehrere Möglichkeiten:
1. Verwenden von Image.putdata():
Konvertieren Sie das Array zurück in eine Folge von Tupeln:
data = list(tuple(pixel) for pixel in pix) pic.putdata(data)
2. Mit Image.fromarray() (PIL 1.1.6 oder höher):
Weisen Sie einfach das geänderte Array dem Bild zu:
pic = Image.fromarray(pix)
Zusätzliche Hinweise:
Das obige ist der detaillierte Inhalt vonWie konvertiere ich ein PIL-Bild in ein NumPy-Array und zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!