2015-11-02 2 views
5

Lorsque je travaillais avec un code que j'avais téléchargé pour un projet et que j'apprenais Python avec, certains des fichiers issus du code sont des images enregistrées en tant que fichiers de données .npy.Affichage d'images .npy

Je suis relativement nouveau à Python et numpy et une grande partie des ressources que j'ai consultées avant d'être publiées concernaient les données numériques enregistrées sous la forme .npy. Est-il possible que je puisse voir les images qui sont stockées avec cette extension ainsi que sauvegarder mes propres fichiers dans ce format?

Répondre

6

.npy est l'extension de fichier pour les tableaux numpy - vous pouvez les lire à l'aide numpy.load:

import numpy as np 

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

Une des façons les plus faciles à voir leur est d'utiliser la fonction imshow de matplotlib:

from matplotlib import pyplot as plt 

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

Vous pourriez utiliser également 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() 

Ces fonctions ne font pas partie de la bibliothèque standard Python, vous devrez donc peut-être installer matplotlib et/ou PIL/oreiller si ce n'est déjà fait. Je suppose également que les fichiers sont 2D [rows, cols] (noir et blanc) ou 3D [rows, cols, rgb(a)] (couleur) des tableaux de valeurs de pixels. Si ce n'est pas le cas, vous devrez nous en dire plus sur le format des tableaux, par exemple ce que sont img_array.shape et img_array.dtype.

enter image description here

+0

Cela suffit conseils pour me aider à comprendre. Je pensais qu'ils étaient des images mais ils sont en fait un tableau généré à partir d'un programme qui lit l'image. –

+0

Vous avez cette erreur dans Windows 10 en utilisant PyCharm https://pastebin.com/CLmS805E –

+0

^erreur était due au chemin et semble être un bug Python! –