前提・実現したいこと
ディレクトリ「X_test」内に50×50ピクセルの画像データ「out_0.jpg」~「out_9.jpg」が入っている。それを読み込み10×50×50の三次元配列を作りたい。
発生している問題・エラーメッセージ
raise ValueError('all input arrays must have the same shape')
エラーメッセージ
### 該当のソースコード from PIL import Image import numpy as np size = 50 #image size end = 10 X_test = np.array([]) for i in range(0, end): filename = f'X_test/out_{i}.jpg' img = Image.open(filename) width, height = img.size img_pixels = np.array([[img.getpixel((x,y)) for x in range(width)] for y in range(height)]) temp = np.array([]) for y in range(0, size): for x in range(0, size): temp_img = img_pixels[x, y] R = temp_img[0] B = temp_img[1] G = temp_img[2] gray = int((R + G + B)/3) temp = np.append(temp, gray) temp = temp.reshape(size, size) if i == 0: X_test = temp else: X_test = np.stack([X_test, temp], axis = 0)
試したこと
二回目のiのループで、X_testが2×50×50の三次元配列にも関わらず、
50×50の二次元配列であるtempを追加しようとしていることが原因だと思う。
ただどうしていいかわからない。
補足情報(FW/ツールのバージョンなど)
python3
回答1件
あなたの回答
tips
プレビュー