2017-09-17 24 views
0

MNISTデータセットでは、イメージはCSV形式であり、784列のそれぞれはピクセル強度に対応しています。私はimshowでそれらを見ることなく、これらの画像のそれぞれを保存したいです。matplotlibを使用してCSVからイメージを保存するMNIST

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))' 

これで私は各画像を保存できません。

+0

もっと具体的になることができますか?スクリプトを実行するとどうなりますか?最後の行の最後にあるアポストロフィは意図的なものですか? –

答えて

0

したい拡張子で終わる必要があるファイルの名前、

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

またはあなたがformat指定する必要があります:あなたがに実行することが

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

1つの追加の問題は、後にすべての画像が重ねて配置されるため、プロットが遅くなります。これを回避するには、ループの最後にplt.close()と呼ぶことができます。

+0

私は 'plt.close()'を使用しなければならなかったことを指摘してくれてありがとう。実際、コードは正常に動作します。ループなしで手作業で100枚の画像を保存しましたが、ループと同じ名前で保存しました。画像を保存するのに時間がかかりましたので、プログラムが実行されていないと思いました。 – khac

+0

「imshowを使用しない」の場合はどうですか? – StatsSorceress

+0

申し訳ありませんが、OPは「私はこれらの画像をimshowで見ることなく保存したい」と言いました。最初にイメージを表示せずにソリューションが動作しますか? – StatsSorceress

関連する問題