import os
import numpy as np
import cv2
#图片数据列表 取值范围0-255
data=[]
#图片标签列表,
label=[]
#将数据列表转化成图片格式,-1 表示图片的数量,3表示图像的通道数,32表示图片的大小
imgs = np.reshape(data, [-1, 3, 32, 32])
for i in range(imgs.shape[0]):
#获取第i张图片的数据
im_data = imgs[i, ...]
#opencv的通道维度在后面,所以需要进行通道维度的跟换
im_data = np.transpose(im_data, [1, 2, 0])
#将rgb图片转化成bgr图片
im_data = cv2.cvtColor(im_data, cv2.COLOR_RGB2BGR)
#根据不同的类别,生成不同类别的路径
f="{}/{}".format("data/image/train",classification[labels[i]])
if not os.path.exists(f):
os.mkdir(f)
#利用opencv写图片的方式生成图片,并按照图片的次序给图片命名
cv2.imwrite("{}/{}.jpg".format(f, str(i)), im_data)
本代码用在cifar10数据集上验证成功!!!