HOWTO · NumPy

Konvertieren von das PIL-Image in ein NumPy-Array

Es gibt zwei Hauptmethoden, mit denen ein PIL-Bild in Python in ein dreidimensionales NumPy-Array konvertiert werden kann: die Funktion numpy.array() und die Funktion numpy.asarray().

Auf dieser Seite

In diesem Tutorial werden die Methoden zum Konvertieren eines PIL-Bilds in ein dreidimensionales NumPy-Array in Python erläutert.

Konvertieren von das PIL-Bild in ein NumPy-Array mit der Funktion numpy.array() in Python

PIL wird verwendet, um verschiedene Operationen an Bildern in Python auszuführen. Die Pillow-Bibliothek ist nicht mit der Programmiersprache Python vorinstalliert. Also müssen wir es zuerst installieren. Der Befehl zum Installieren der Kissenbibliothek ist unten angegeben.

pip install Pillow

Wenn wir ein von der PIL-Bibliothek gelesenes Bild in ein NumPy-Array konvertieren möchten, können wir die Funktion numpy.array() verwenden. Die Funktion numpy.array() erstellt und initialisiert numpy-Arrays. Die Funktion numpy.array() konvertiert das PIL-Bild in ein dreidimensionales Array. Siehe das folgende Codebeispiel.

import numpy as np
from PIL import Image

img = Image.open("NASA.jpg")
imgArray = np.array(img)
print(imgArray.shape)

Ausgabe:

(90, 240, 3)

Im obigen Code haben wir das PIL-Bild img mit der Funktion numpy.array() in ein dreidimensionales NumPy-Array imgArray konvertiert. Wir lesen das Bild in der Variablen img mit der Funktion Image.open() in Python. Wir haben dann das img mit der Funktion numpy.array() in Python in das NumPy-Array imgArray konvertiert. Am Ende haben wir die Form des imgArray mit der Funktion print() gedruckt.

Konvertieren von das PIL-Bild in ein NumPy-Array mit der Funktion numpy.asarray() in Python

Wir können auch die Funktion numpy.asarray() verwenden, um dasselbe Ziel wie im vorherigen Beispiel zu erreichen. Die Funktion numpy.asarray() erstellt und initialisiert auch ein numpy-Array. Wir können ein PIL-Bild in ein numPy-Array konvertieren, indem wir das Bild an die Funktion numpy.asarray() übergeben. Siehe das folgende Codebeispiel.

import numpy as np
from PIL import Image

img = Image.open("NASA.jpg")
imgArray = np.asarray(img)
print(imgArray.shape)

Ausgabe:

(90, 240, 3)

Im obigen Code haben wir das PIL-Bild img mit der Funktion numpy.array() in Python in das dreidimensionale NumPy-Array imgArray konvertiert. Wir haben die Variable in der Variable img mit der Funktion Image.open() in Python geladen. Anschließend haben wir das Bild img mit der Funktion numpy.asarray() in Python in das NumPy-Array imgArray konvertiert. Am Ende haben wir die Form des imgArray mit der Funktion print() gedruckt.