Angenommen, ich habe ein 2D-Numpy-Array von Werten im Bereich von 0 bis 1, das ein Graustufenbild darstellt. Wie konvertiere ich das dann in ein PIL Image-Objekt? Alle bisherigen Versuche haben extrem seltsame Pixel oder schwarze Bilder ergeben.2D-Numpy-Array von Graustufenwerten in ein PIL-Bild konvertieren
for x in range(image.shape[0]):
for y in range(image.shape[1]):
image[y][x] = numpy.uint8(255 * (image[x][y] - min)/(max - min))
#Create a PIL image.
img = Image.fromarray(image, 'L')
In dem obigen Code wird das Bild durch numpy Array normalisiert (image [x] [y] - min)/(max - min), so wird jeder Wert auf dem Bereich 0 bis 1. Es ist dann multipliziert mit 255 und in eine 8-Bit-Ganzzahl umgewandelt. Dies sollte theoretisch durch Image.fromarray mit Modus L in ein Graustufenbild - aber das Ergebnis ist eine Reihe von verstreuten weißen Pixeln.
Verwenden Sie eine aktuelle Version von ['Pillow'] (https://pillow.readthedocs.org/), eine gepflegte Verzweigung von PIL, oder verwenden Sie die ursprüngliche PIL? – MattDMo
+ MattDMo Ich benutze die neueste Version von Pillow, und ich verwende insbesondere Python 3.4 –
Bitte bearbeiten Sie Ihre Frage und posten Sie, was Sie bisher versucht haben, einschließlich Beispiel Eingabe, erwartete Ausgabe, die tatsächliche Ausgabe (falls vorhanden) und den ** Volltext ** aller Fehler oder Rückverfolgungen. – MattDMo