6-4cifar10数据介绍读取处理(下)

 cv2.imwrite("{} {} {}".format(save_path,
                                      im_label_name,
                                      im_name.decode("utf-8")), im_data)

上面那行代码折腾半天,运行出来是结果写入不到文件夹中
正确写法

cv2.imwrite("{}/{}/{}".format(save_path,
                                      im_label_name,
                                      im_name.decode("utf-8")), im_data)

本文最后的代码时运行成功

# -*- encoding: utf-8 -*-
"""
@File    : readcifar10.py
@Time    : 2021-02-05 1:17
@Author  : XD
@Email   : gudianpai@qq.com
@Software: PyCharm
"""
def unpickle(file):
    import pickle
    with open(file, 'rb') as fo:
        dict = pickle.load(fo, encoding='bytes')
    return dict
label_name = ["airplane",
              "automobile",
              "bird",
              "cat",
              "deer",
               "dog",
                "frog",
                "horse",
                "ship",
                "truck"
              ]

import glob
import numpy as np
import cv2
import os

train_list = glob.glob("E:\\pytorch\\006cifar10\\cifar-10-batches-py\\data_batch_*")
print(train_list)
save_path = "E:/pytorch/006cifar10/cifar-10-batches-py/TRAIN"
for l in train_list:
    print(l)
    l_dict = unpickle(l)
    print(l_dict.keys())

    for im_idx, im_data in enumerate(l_dict[b'data']):
        im_label = l_dict[b'labels'][im_idx]
        im_name = l_dict[b'filenames'][im_idx]
        print(im_label, im_name, im_data)
        im_label_name = label_name[im_label]
        im_data = np.reshape(im_data, [3, 32, 32])
        im_data = np.transpose(im_data, (1, 2, 0))

        # cv2.imshow("im_data",cv2.resize(im_data, (200, 200)))
        # cv2.waitKey(0)
        if not os.path.exists("{}/{}".format(save_path,
                                             im_label_name)):
            os.mkdir("{}/{}".format(save_path, im_label_name))

        cv2.imwrite("{} {} {}".format(save_path,
                                      im_label_name,
                                      im_name.decode("utf-8")), im_data)

效果

在这里插入图片描述
在这里插入图片描述

import pickle
def unpickle(file):
    with open(file, 'rb') as fo:
        dict = pickle.load(fo, encoding='bytes')
    return dict
label_name = ["airplane",
              "automobile",
              "bird",
              "cat",
              "deer",
              "dog",
              "frog",
              "horse",
              "ship",
              "truck"]

import glob
import numpy as np
import cv2
import os

train_list = glob.glob("E:/pytorch/006cifar10/cifar-10-batches-py/data_batch_*")
print(train_list)
save_path = "E:/pytorch/006cifar10/cifar-10-batches-py/TRAIN"

for l in train_list:
    print(l)
    l_dict = unpickle(l)
    # print(l_dict)
    print(l_dict.keys())

    for im_idx, im_data in enumerate(l_dict[b'data']):
        im_label = l_dict[b'labels'][im_idx]
        im_name = l_dict[b'filenames'][im_idx]
        print(im_label, im_name, im_data)
        im_label_name = label_name[im_label]
        im_data = np.reshape(im_data, [3, 32, 32])
        im_data = np.transpose(im_data, (1, 2, 0))

        # cv2.imshow("im_data",cv2.resize(im_data, (200, 200)))
        # cv2.waitKey(0)

        if not os.path.exists("{}/{}".format(save_path,
                                             im_label_name)):
            os.mkdir("{}/{}".format(save_path, im_label_name))

        cv2.imwrite("{}/{}/{}".format(save_path,
                                      im_label_name,
                                      im_name.decode("utf-8")), im_data)



































# data_list = glob.glob("/home/kuan/dataset/"
#                       "cifar-11-batches-py/data_batch*")
# for path in data_list:
#     data = unpickle(path)
#     for i in range(len(data[b"labels"])):
#
#         im_data = np.reshape(data[b"data"][i], (3, 32, 32))
#         im_data = np.transpose(im_data, (1, 2, 0))
#         im_name = data[b'filenames'][i].decode("utf-8")
#         im_label = label_name[data[b"labels"][i]]
#
#         if not os.path.exists("/home/kuan/dataset/cifar-11-batches-py/train/{}"
#                                   .format(im_label)):
#             os.mkdir("/home/kuan/dataset/cifar-11-batches-py/train/{}"
#                                   .format(im_label))
#
#         cv2.imwrite("/home/kuan/dataset/cifar-11-batches-py/train/{}/{}"
#                                   .format(im_label, im_name), im_data)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值