from PIL import Image
import os
IMAGES_PATH = r"E:\\其他样本数据\\车辆识别训练模型\\val\\bus\\"
image_name = [name for name in os.listdir(IMAGES_PATH)]
x_train = []
for i in image_name:
next=Image.open(IMAGES_PATH+i)
next =next.resize((300,300)) # 将图片大小设统一
next_dataarry=np.array(next) # 图像转nparray
if len(x_train) == 0:
x_train = next_dataarry[np.newaxis, :] #第一次读取的时候,直接取第一张图像的np数组,并且新增一个维度
else:
x_train = np.append(x_train, [next_dataarry], axis=0) # 第二次读取以后,在第一次数据的基础上append就行了
print(x_train.shape)
# x_train=np.vstack((x_train,next_dataarry)),这种方法只适合多个数据直接叠加,不适合for循环中依次添加
print(“x_train.shape”,x_train.shape)
结果:
(1, 300, 300, 3)
(2, 300, 300, 3)
(3, 300, 300, 3)
(4, 300, 300, 3)
(5, 300, 300, 3)
(6, 300, 300, 3)
(7, 300, 300, 3)
(8, 300, 300, 3)
(9, 300, 300, 3)
(10, 300, 300, 3)
(11, 300, 300, 3)
(12, 300, 300, 3)
(13, 300, 300, 3)
(14, 300, 300, 3)
(15, 300, 300, 3)
x_train.shape (15, 300, 300, 3)