cifar-10保存图片

在这里插入图片描述

import cv2
import numpy as np
import os
import pickle


# 解压文件,返回解压缩后的字典
def unpickle(file):
    with open(file, 'rb') as f:
        dicts = pickle.load(f, encoding='bytes')
    return dicts


# 创建文件夹
data_dict = {0:"airplane",1:"automobile",2:"bird",3:"cat",4:"deer",5:"dog",6:"frog",7:"horse",8:"ship",9:"truck"}
for i in range(len(data_dict)):
    # 以f开头的表示字符串内支持大括号内的python表达式
    path1 = f"train/{data_dict[i]}"
    path2 = f"test/{data_dict[i]}"
    if not os.path.isdir(path1):
        os.makedirs(path1)
    if not os.path.isdir(path2):
        os.makedirs(path2)


for j in range(1, 6):
    dataName = "data_batch_" + str(j)
    Xtr = unpickle(dataName)    # 解压文件
    print(dataName + "is loading")
    for i in range(10000):
        # 加个b表示bytes对象
        img = np.reshape(Xtr[b'data'][i], (3, 32, 32))
        img = img.transpose(1, 2, 0)
        picName = "train/" + str(data_dict[Xtr[b'labels'][i]]) + "/" + str(i + (j-1)*10000) + ".jpg"
        cv2.imwrite(picName, img)
    print(dataName + "loaded")


print("test is loading")
# 生成测试文件
testXtr = unpickle("test_batch")
for i in range(10000):
    img = np.reshape(testXtr[b'data'][i], (3, 32, 32))
    img = img.transpose(1, 2, 0)
    picName = "test/" + str(data_dict[testXtr[b'labels'][i]]) + "/" + str(i) + ".jpg"
    cv2.imwrite(picName, img)

print("test loaded")

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值