首页 > 其他分享 >如何将CIFAR-10数据集转化为图片

如何将CIFAR-10数据集转化为图片

时间:2025-01-13 16:31:39浏览次数:3  
标签:10 Xtr img batch CIFAR dataName import data 图片

如何将CIFAR-10数据集转化为图片

简单记录一下CIFAR-10数据集转图片的过程

1.首先在官网下载CIFAR-10数据集

官网下载
得到文件如下
CIFAR-10数据集

2.想把他转化为jpg图片,从网上得到代码如下

 # -*- coding: utf-8 -*-
from scipy.misc import imsave
import numpy as np
import pickle

# 解压缩,返回解压后的字典
def unpickle(file):
    fo = open(file, 'rb')
    dict = pickle.load(fo, encoding='latin1')
    fo.close()
    return dict

# 生成训练集图片,如果需要png格式,只需要改图片后缀名即可。
for j in range(1, 6):
    dataName = "data_batch_" + str(j)  # 读取当前目录下的data_batch12345文件,dataName其实也是data_batch文件的路径,本文和脚本文件在同一目录下。
    Xtr = unpickle(dataName)
    print(dataName + " is loading...")

    for i in range(0, 10000):
        img = np.reshape(Xtr['data'][i], (3, 32, 32))  # Xtr['data']为图片二进制数据
        img = img.transpose(1, 2, 0)  # 读取image
        picName = 'train/' + str(Xtr['labels'][i]) + '_' + str(i + (j - 1)*10000) + '.jpg'  # Xtr['labels']为图片的标签,值范围0-9,本文中,train文件夹需要存在,并与脚本文件在同一目录下。
        imsave(picName, img)
    print(dataName + " loaded.")

print("test_batch is loading...")

# 生成测试集图片
testXtr = unpickle("test_batch")
for i in range(0, 10000):
    img = np.reshape(testXtr['data'][i], (3, 32, 32))
    img = img.transpose(1, 2, 0)
    picName = 'test/' + str(testXtr['labels'][i]) + '_' + str(i) + '.jpg'
    imsave(picName, img)
print("test_batch loaded.")

结果报错

ImportError: cannot import name 'imsave' from 'scipy.misc'

分析:原来是新版本imsave已经被弃用了

解决方法
from scipy.misc import imsave换成import imageio

save换成imageio.imwrite

3.改正后完整代码

 # -*- coding: utf-8 -*-
# from scipy.misc import imsave
import numpy as np
import pickle
import imageio
import os

trainDir = "train"
testDir = "test"
if not os.path.exists(trainDir):
    os.makedirs(trainDir)
if not os.path.exists(testDir):
    os.makedirs(testDir)
# 解压缩,返回解压后的字典
def unpickle(file):
    fo = open(file, 'rb')
    dict = pickle.load(fo, encoding='latin1')
    fo.close()
    return dict

# 生成训练集图片,如果需要png格式,只需要改图片后缀名即可。
for j in range(1, 6):
    dataName = "cifar-10-batches-py\data_batch_" + str(j)  # 读取当前目录下的data_batch12345文件,dataName其实也是data_batch文件的路径,本文和脚本文件在同一目录下。
    Xtr = unpickle(dataName)
    print(dataName + " is loading...")

    for i in range(0, 10000):
        img = np.reshape(Xtr['data'][i], (3, 32, 32))  # Xtr['data']为图片二进制数据
        img = img.transpose(1, 2, 0)  # 读取image
        picName = 'train/' + str(Xtr['labels'][i]) + '_' + str(i + (j - 1)*10000) + '.jpg'  # Xtr['labels']为图片的标签,值范围0-9,本文中,train文件夹需要存在,并与脚本文件在同一目录下。
        imageio.imwrite(picName, img)
    print(dataName + " loaded.")

print("test_batch is loading...")

# 生成测试集图片
testXtr = unpickle("cifar-10-batches-py\\test_batch")
for i in range(0, 10000):
    img = np.reshape(testXtr['data'][i], (3, 32, 32))
    img = img.transpose(1, 2, 0)
    picName = 'test/' + str(testXtr['labels'][i]) + '_' + str(i) + '.jpg'
    imageio.imwrite(picName, img)
print("test_batch loaded.")

到此over

标签:10,Xtr,img,batch,CIFAR,dataName,import,data,图片
From: https://blog.csdn.net/qq_47571437/article/details/145117419

相关文章

  • YOLOv10-1.1部分代码阅读笔记-downloads.py
    downloads.pyultralytics\utils\downloads.py目录downloads.py1.所需的库和模块2.defis_url(url,check=False): 3.defdelete_dsstore(path,files_to_delete=(".DS_Store","__MACOSX")): 4.defzip_directory(directory,compress=True,exclude=(&qu......
  • QQRFEWEFEQQ;寡肽-104;Oligopeptide P11-4
    【简介】OligopeptideP11-4是一种α肽,可在低pH条件下自组装成具有水凝胶外观的β片状淀粉样蛋白。该多肽由天然氨基酸谷氨酰胺、谷氨酸、苯丙氨酸、色氨酸和精氨酸组成,这些氨基酸通过肽键连接在一起,形成了对牙齿矿物质具有高亲和力的高分子结构。OligopeptideP11-4可......
  • LeetCode热题100-两数相加【JavaScript讲解】
    题目:题解:根据题目(2->4->3)+(5->6->4)=(7->0->8),根据加法的计算过程我们知道首先从低位开始算起,也就是说应该先计算2+5=7;4+6=10,向前进一位,此处取余数0;3+4+进一位的1=8;所以答案是7->0->8。最关键的是最后的进位一定要记得,如果最后相加的和需要进位!!!解题代码:/***......
  • LeetCode100之分割回文串(131)--Java
    1.问题描述        给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串。返回 s 所有可能的分割方案。        示例1输入:s="aab"输出:[["a","a","b"],["aa","b"]]    示例2 输入:s="a"输出:[["a"]]        提......
  • 使用html2canvas插件生成图片时,图片底部有一条白线的问题
    在使用html2canvas插件把页面生成图片时,如果背景不是白色的,会发现生成图片的底部会有一条白线。可能是由于像素渲染问题导致的。移动设备的屏幕像素密度(PixelDensity)较高,有时会导致在两个相邻元素之间出现细小的间隙或白线。解决方法将canvas画布高度调小1像素,生成图片之前先......
  • 【2025-01-10】老表借车
    20:00人一旦发现自己的过错,心里就会很难受,但不会太久,如果你能承认自己的过错,反而会因此感到一股混合着骄傲的愉快感。这就是一个人为自己的行为负责后感到的快乐,这就是荣誉感。                               ......
  • 104_洗衣店订单管理系统
    ......
  • 105_基于springboot学生信息管理系统
    ......
  • (倍福授权)国产EtherCAT从站控制芯片P2P替代ET1100
    EtherCAT技术是德国的倍福自动化(Beckhoff)开发,处于EtherCAT技术协会(ETG)框架之下,是一项开放但不开源的技术,任何相关设备的开发,都需要向其获取相关授权。就目前来看,获得Beckhoff授权的厂商并不多,而且大部分都是海外半导体厂商。不过近几年,随着国内EtherCAT市场的增长,情况开始有所改......
  • 描述下你所了解的图片格式及使用场景
    在前端开发中,图片格式的选择对于网页的性能和用户体验至关重要。以下是我所了解的一些常见图片格式及其使用场景:JPG/JPEG:特点:JPG是最常用的图像文件格式,具有较高的压缩率,因此加载速度较快。然而,它是有损压缩,意味着在压缩过程中会丢失一些图像数据,可能导致质量受损。使用场景......