2017-09-17 2 views
0

Dans l'ensemble de données MNIST, j'ai les images au format CSV, chacune des 784 colonnes correspond à une intensité de pixel. Je veux enregistrer chacune de ces images sans les regarder avec imshow.MNIST sauvegarde des images à partir de CSV en utilisant matplotlib

import numpy as np 
import csv 
import matplotlib.pyplot as plt 
i=0 
with open('Book1.csv', 'r') as csv_file: 
for data in csv.reader(csv_file): 

    # The rest of columns are pixels 
    pixels = data[:] 

    # This array will be of 1D with length 784 
    # The pixel intensity values are integers from 0 to 255 
    pixels = np.array(pixels, dtype='uint8') 

    # Reshape the array into 28 x 28 array (2-dimensional array) 
    pixels = pixels.reshape((28, 28)) 
    i +=1 
    # Plot 
    plt.title('Label is {label}'.format(label=label)) 
    plt.imshow(pixels, cmap='gray') 
    plt.savefig(str(i))' 

Je ne parviens pas à enregistrer chaque image.

+0

Pouvez-vous être plus précis? Que se passe-t-il exactement lorsque vous exécutez le script? L'apostrophe à la fin de la dernière ligne est-elle intentionnelle? –

Répondre

0

Le nom du fichier doit se terminer par l'extention que vous voulez,

plt.savefig(str(i)+".png") 

ou vous devez spécifier le format:

plt.savefig(str(i), format="png") 

Un problème supplémentaire que vous pouvez exécuter en est que, après une tandis que votre tracé ralentit, car toutes les images sont placées les unes sur les autres. Pour contourner ce problème, vous pouvez appeler le plt.close() à la fin de la boucle.

+0

Merci de m'avoir signalé l'utilisation de 'plt.close()'. En fait, le code fonctionne bien. J'avais sauvegardé une centaine d'images à la main sans la boucle, avec le même nom que la boucle. Et comme il a fallu si longtemps pour enregistrer l'image, j'ai pensé que le programme ne fonctionnait pas. – khac

+0

Que dire de 'sans utiliser imshow'? – StatsSorceress

+0

Désolé, l'OP a dit 'Je veux sauvegarder chacune de ces images sans les regarder avec imshow'. La solution fonctionne-t-elle sans montrer d'abord l'image? – StatsSorceress