2016-04-17 9 views
0

私はPythonで作業していますが、matplotlibを使用して表示するには苦労しています。無効な寸法誤差MatplotLib

問題:

私は形状(3072,)のnumpyの配列を、持っています。私はこの配列が3チャンネル(RGB)と32x32ピクセルの画像を持つべき画像を表していることを認識しています。それで、私は(3, 32, 32)の形にイメージを作り直しました。私はこの使用してmatplotlibのプロットをしようとすると

crab.shape 
> (3072,) 

crab.reshape((3, 32, 32)) 
crab.shape 
> (3, 32, 32) 

matplotlib.pyplot.imshow(crab) 
> TypeError: Invalid dimensions for image data 

、私は次のエラーを取得する:Invalid dimensions for image data

私が間違って、この画像をサイズ変更だろうか?どんな助けでも大歓迎です。おかげ

+0

(32,32,3) – Hun

+0

(3,32,32)を試してみると、今度はカニ[0]、カニ[1]、カニ[2]を横に並べると、それらはカラーチャンネルです。 一般的に、あなたが持っているもののタイプをテストし、関数が望む入力を比較するには、type()を使用します。 – roadrunner66

+0

'imshow'は2Dデータの単一チャンネルしか取らないので、エラーは完全に予想されます。 Crab [0]などのように(32x32)の配列だけを試してみてください。 – roadrunner66

答えて

0

として再形成してください32×32×3:

crab.reshape((32, 32, 3)) 

さて、これは正しい画像が得られないことがあり、データは、それが保存されたご注文が、それはすべきであるからとした出番に応じて、あなたが示したエラーを修正してください。

イメージが正しくない場合は、バンドを1つずつプロットして、どのイメージプレーンがどのインデックスに対応しているかを調べてください。