2017-04-24 14 views
0

画像ピクセルデータをnumpy配列にロードしようとしていますが、dtypeフィールドに値を代入する方法がわかりません。画像をnumpy配列に読み込み

私のイメージはタイプがuint8でサイズは×3 128×128であり、次のようにロードされます。

import glob 
from scipy import misc 
images = np.fromiter((misc.imread(path) for path in glob.glob('images/*.png')), <dtype_field>) 

misc.imread numpyの配列としての負荷の各画像を、私は直面しています問題は、このリストを回しています画像そのものを細かい配列にします。

は、同様に次のことを試みたが、動作しません:

私は次のエラーを取得する
images = [misc.imread(path) for path in glob.glob('extra_signs/*.png')] 
images = np.asarray(images) 

np.uint8にDTYPEの設定

ValueError: could not broadcast input array from shape (128,128,3) into shape (128,128)

は、次のエラーがスローされます。

ValueError: setting an array element with a sequence.

注:私は見ましたstackoverflowの周り、私はnumpy配列に画像を読み取る方法については、単一の配列にすべての画像を読み取るには何も問題を発見した。

+1

あなたの画像の1つが128x128x3ではないようです。あなたのファイルの中に128x128の形のモノクローム画像がないのは確かですか? –

+0

@WarrenWeckesser 'モノクローム画像'は 'グレースケール'画像の単なる言葉ですか? – kmario23

+0

@WarrenWeckesserあなたはほぼ正しいです。私は4チャンネルの深さの画像を持っていました。何がそこに間違っていたのか分かりませんが、私はそれを通常の深さ3のものに置き換えて動作させました。ありがとうウォーレン! –

答えて

2

あなたが読んでいるすべての画像のサイズを確認してください。明らかに、少なくとも1つは128x128x3ではありません。

関連する問題