2015-11-02 12 views
5

Bei der Arbeit mit Code, den ich für ein Projekt heruntergeladen und mit Python gelernt habe, sind einige der Dateien, die der Code abruft, Bilder, die als .npy Dateien gespeichert werden.Anzeigen von .npy-Bildern

Ich bin relativ neu zu Python und numpy und viele der Ressourcen, die ich vor der Buchung durchgeblättert habe, wurden in Bezug auf Anzahl Daten als .npy gespeichert. Gibt es eine Möglichkeit, die Bilder, die mit dieser Erweiterung gespeichert werden, zu sehen und meine eigenen Dateien in diesem Format zu speichern?

Antwort

6

.npy ist die Dateierweiterung für numpy Arrays - Sie können sie numpy.load mit lesen:

import numpy as np 

img_array = np.load('filename.npy') 

Eine der einfachsten Möglichkeiten, um sie zu sehen ist imshow Funktion mit matplotlib:

from matplotlib import pyplot as plt 

plt.imshow(img_array, cmap='gray') 
plt.show() 

Sie könnten verwenden Sie auch PIL or pillow:

from PIL import Image 

im = Image.fromarray(img_array) 
# this might fail if `img_array` contains a data type that is not supported by PIL, 
# in which case you could try casting it to a different dtype e.g.: 
# im = Image.fromarray(img_array.astype(np.uint8)) 

im.show() 

Diese Funktionen sind nicht Teil der Python-Standardbibliothek. Daher müssen Sie möglicherweise matplotlib und/oder PIL/pillow installieren, falls Sie dies nicht bereits getan haben. Ich gehe auch davon aus, dass die Dateien entweder 2D [rows, cols] (schwarz und weiß) oder 3D [rows, cols, rgb(a)] (Farbe) Arrays von Pixelwerten sind. Wenn das nicht der Fall ist, müssen Sie uns mehr über das Format der Arrays sagen, zum Beispiel was img_array.shape und img_array.dtype sind.

enter image description here

+0

Das ist genug, um Führung mir zu helfen herauszufinden. Ich dachte, es wären Bilder, aber tatsächlich handelt es sich um ein Array, das aus einem Programm generiert wird, das das Bild liest. –

+0

Bekam diesen Fehler in Windows 10 mit PyCharm https://pastebin.com/CLmS805E –

+0

^Fehler war aufgrund des Pfades und scheint ein Python-Fehler zu sein! –