Heim >Backend-Entwicklung >Python-Tutorial >Wie konvertiert man PIL-Bilder effizient in NumPy-Arrays und zurück?
Bei der Arbeit mit pixelbasierten Transformationen können die Geschwindigkeit und Flexibilität von NumPy-Arrays gegenüber PixelAccess von PIL oft von Vorteil sein. In diesem Artikel wird gezeigt, wie Sie PIL-Bilder effizient in NumPy-Arrays und zurück konvertieren, sodass Sie die Funktionen beider Frameworks nutzen können.
import PIL.Image import numpy as np pic = PIL.Image.open("foo.jpg") pix = np.array(pic.getdata()).reshape(pic.size[0], pic.size[1], 3)
Dieser Code konvertiert die PIL-Bild in ein NumPy-Array mit Abmessungen (Höhe, Breite, Kanäle).
Es stehen zwei Ansätze zur Verfügung:
data = list(tuple(pixel) for pixel in pix) pic.putdata(data)
Beachten Sie, dass diese Methode für große Arrays langsam sein kann.
pix = np.array(pic) # Converts PIL Image to NumPy array # Make changes to the array pic = PIL.Image.fromarray(pix)
Diese Methode führt im Allgemeinen schneller aus und ist der empfohlene Ansatz für die Rückkonvertierung von NumPy-Arrays in PIL-Bilder.
Das obige ist der detaillierte Inhalt vonWie konvertiert man PIL-Bilder effizient in NumPy-Arrays und zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!