cifar10 数据集转换成图片中imsave()问题详解
2020-01-15 09:08
267 查看
`做cifar10 数据集转换成图片程序,发现许多现有程序运行过程中会有imsave()报错,目前许多解释未安装pillow库所致,本人经过验证发现,目前pip安装库后,仍会出现scipy.misc内没有imsave()的问题,研究发现根本问题在于scipy.misc已经将imsave(),imread弃用,现在代替使用为mageio库,有做cifar10 数据集转换成图片等过程的朋友可以尝试使用import imageio代替from scipy.misc import imsave,替代后目前可以使用代码如下:
import imageio import numpy as np import pickle # 对数据集进行解压缩 def unpickle(file): shujuji = open(file, 'rb') dict = pickle.load(shujuji, encoding='latin1') shujuji.close() return dict # 生成训练集图片,如果需要其他格式,只需要改图片后缀名即可。 for j in range(1, 6): dataName = "data_batch_" + str(j) # 此处一定要把数据集的12345放在与本py一起的一个文件夹内。 xuliehua = unpickle(dataName)#文件序列化 print(dataName + " is loading...") for i in range(0, 10000): img = np.reshape(xuliehua['data'][i], (3, 32, 32)) #xuliehua['data']为图片二进制数据 img = img.transpose(1, 2, 0) # 读取image picName = 'train/' + str(xuliehua['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...") # 生成测试集图片 testxlh = unpickle("test_batch") for i in range(0, 10000): img = np.reshape(testxlh['data'][i], (3, 32, 32)) img = img.transpose(1, 2, 0) picName = 'test/' + str(testxlh['labels'][i]) + '_' + str(i) + '.jpg' imageio.imwrite(picName, img) print("test_batch loaded.")
使用此代码需注意:
1、py文件与12345文件必须在同一文件夹内,否则改代码里的默认目录;
2、文件夹内建好train、test文件夹,否则仍改代码
具体如下图,CIFAR-10 to jpg.py为代码文件
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- cifar10 数据集转换成图片
- 一文解决图片数据集太少的问题:详解KerasImageDataAugmentation各参数
- VTK向ITK转换后输出序列dicom图片的问题
- div+css 背景图片的定位取图问题详解
- Android 7.0中拍照和图片裁剪适配的问题详解
- 关于PDF转换图片的问题
- 在ios中使用opencv将彩色图片转换成为灰度图,uiimageview无法显示问题
- caffe里面的28*28的图片转换成mnist对应数据集
- 电商问题之客户端访问网站图片详解
- java转换ppt,ppt转成图片 乱码问题解决
- 转 div+css 背景图片的定位取图问题详解
- Unity问答——请教一下NGUI的图片转换问题
- ViewPager详解(三)——自动轮播图片小于三张的问题解决
- Android7.0系统,5.0系统,以及5.0以下系统选择本地图片路径转换问题
- java使用itextpdf将图片转换成pdf时DPI的问题
- java转换ppt,ppt转成图片 乱码问题解决
- div+css 背景图片的定位取图问题详解
- C#中字符转换问题详解
- html/css教程:背景图片的定位问题详解