2017-08-18 9 views
0

変数imgは、サイズが28x28のint64 numpy.arrayです。その内容は次のようになります。numpy配列をPILに変換する際のエラー画像

[...] 
[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
    0 0 0 0 0 0 0 0 0 0] 
[ 0 0 0 0 0 0 0 0 0 68 154 188 176 254 254 254 254 254 
    227 106 17 0 0 0 0 0 0 0] 
[...] 

この配列をPILイメージに変換したいと考えています。これを行うには、私はimg = Image.fromarray(img, mode='L')と呼んでいますが、出力が0になるのは明らかですが、そうはならないことは明らかです。私はmodeオプションをチェックして、Lが正しいと思われます。また、stackoverflow内の他の答えをチェックし、この特定の問題を再現するものが見つかりませんでした。

L(黒と白の8ビットピクセル)

なぜコードのこの「単純な」部分が予期しない動作が与えられますか。

ありがとうございます!

+1

を入力は、DTYPE 'np.uint8'のではないでしょうか? – Divakar

+0

あなたは正しいです!本当に感謝しています。 –

答えて

1

@Divakar氏は指摘したように、データ型は一貫性がありませんでした。

はちょうどそれが動作するnp.uint8()を追加することによって:

img = Image.fromarray(np.uint8(img), mode='L') 
関連する問題