将cifar10数据集转为图片(python)

您所在的位置:网站首页 cifar-10数据集显示飞机 将cifar10数据集转为图片(python)

将cifar10数据集转为图片(python)

2024-06-11 19:55| 来源: 网络整理| 查看: 265

1.首先就是下载cifar-10-python.tar.gz ,到官网下载即可。

2.然后在pycharm里新建一个main.py , 放入以下代码

import os import cv2 import numpy as np def unpickle(file): import pickle with open(file, 'rb') as fo: dict = pickle.load(fo, encoding='bytes') return dict loc_1 = './dataset/train_cifar10/' loc_2 = './dataset/test_cifar10/' # 判断文件夹是否存在,不存在的话创建文件夹 if os.path.exists(loc_1) == False: os.mkdir(loc_1) if os.path.exists(loc_2) == False: os.mkdir(loc_2) # 训练集有五个批次,每个批次10000个图片,测试集有10000张图片 def cifar10_img(file_dir): for i in range(1, 6): data_name = file_dir + '/' + 'data_batch_' + str(i) data_dict = unpickle(data_name) print(data_name + ' is processing') for j in range(10000): img = np.reshape(data_dict[b'data'][j], (3, 32, 32)) img = np.transpose(img, (1, 2, 0)) # 通道顺序为RGB img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 要改成不同的形式的文件只需要将文件后缀修改即可 img_name = loc_1 + str(data_dict[b'labels'][j]) + str((i) * 10000 + j) + '.jpg' cv2.imwrite(img_name, img) print(data_name + ' is done') test_data_name = file_dir + '/test_batch' print(test_data_name + ' is processing') test_dict = unpickle(test_data_name) for m in range(10000): img = np.reshape(test_dict[b'data'][m], (3, 32, 32)) img = np.transpose(img, (1, 2, 0)) # 通道顺序为RGB img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 要改成不同的形式的文件只需要将文件后缀修改即可 img_name = loc_2 + str(test_dict[b'labels'][m]) + str(10000 + m) + '.jpg' cv2.imwrite(img_name, img) print(test_data_name + ' is done') print('Finish transforming to image') if __name__ == '__main__': file_dir = './dataset/cifar-10-batches-py' cifar10_img(file_dir)

3.然后,创建一个文件夹dataset,把第一步下载文件解压后放进来,如图:

最后运行main.py, 就会自动输出test-cifar10文件夹,和train-cifar10文件夹,在datasets文件里可以看到。

参考了网上很多文章,代码是来自HUST潘潘。 https://zhuanlan.zhihu.com/p/129088177



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3