【发布时间】:2019-08-24 20:51:26
【问题描述】:
我正在编写一个函数来从图像中读取像素数据并将它们存储在一个 numpy 数组中以进一步进行训练/测试拆分。
当我运行这段代码时,它会抛出一个异常,指出除了连接轴之外的所有输入数组维度必须完全匹配。
我不确定为什么会出现这个问题以及如何解决它。
from PIL import Image
import numpy as np
import os
X = np.array([])
y = []
categories = {
'A': 1,
'B': 2
}
root = data_dir + '/cropped_resized(128,128)/'
for path, subdirs, files in os.walk(root):
for name in files:
img_path = os.path.join(path,name)
category = categories[os.path.basename(path)]
im = Image.open(img_path)
img_pixels = list(im.getdata())
width, height = im.size
X = np.vstack((X, img_pixels))
#X = np.concatenate((X, img_pixels), axis=0)
y.append(category)
X_train, X_test, y_train, y_test = train_test_split(X, y)
这是一个失败的图片示例
【问题讨论】:
-
在循环中使用
vstack很慢。最好像y那样积累一个列表 -
谢谢,确实这样更快
标签: python numpy python-imaging-library