解析cifar的python数据集中的图片

来源:互联网 发布:单片机 http请求 编辑:程序博客网 时间:2024/04/29 23:02

以下代码根据这篇文章修改:http://blog.csdn.net/guohuifengby/article/details/62424299

运行环境:
win7
numpy-1.13.1+mkl-cp36-cp36m-win_amd64.whl
scipy-0.19.1-cp36-cp36m-win_amd64.whl

#encoding:utf-8from scipy.misc import imsaveimport numpy as np# 解压缩,返回解压后的字典def unpickle(file):    import pickle    with open(file, 'rb') as fo:        dict = pickle.load(fo, encoding='bytes')    return dict# 生成训练集图片,如果需要png格式,只需要改图片后缀名即可。for j in range(1, 6):    # 读取当前目录下的data_batch12345文件,dataName其实也是data_batch文件的路径,本文和脚本文件在同一目录下。    dataName = "data_batch_" + str(j)      Xtr = unpickle(dataName)    print (dataName + " is loading...")    for i in range(0, 10000):        img = np.reshape(Xtr[b'data'][i], (3, 32, 32))  # Xtr['data']为图片二进制数据        img = img.transpose(1, 2, 0)  # 读取image        # Xtr['labels']为图片的标签,值范围0-9,本文中,train文件夹需要存在,并与脚本文件在同一目录下。        picName = 'train/' + str(Xtr[b'labels'][i]) + '_' + str(i + (j - 1)*10000) + '.jpg'          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[b'data'][i], (3, 32, 32))    img = img.transpose(1, 2, 0)    picName = 'test/' + str(testXtr[b'labels'][i]) + '_' + str(i) + '.jpg'    imsave(picName, img)print ("test_batch loaded.")
原创粉丝点击