参考链接:http://blog.csdn.net/zengxyuyu/article/details/53240463
备注:参考链接用python2.7,有少许错误,本文所用python3.5,已修改可用,小伙伴们注意按需取用哦~
前面用Python3 实现了cifar10数据的可视化,在cifar10里面取出来100张图片转化为png格式,上链接:
http://blog.csdn.net/f201113137051/article/details/79014627
现在如果我们想用tensorflow训练自己的图片,我们应该怎样把图片转成cifar数据集那种二进制并用字典的数据结构 datadict 存储的数据集呢?我们暂时用上篇博客从cifar数据集生成的图片输出作为这篇博客图片输入,图片数量100,是RGB彩色通道图像。
1.总览
这次用到的Python库或模块有:
(1) pillow:图像处理库,用来读个图像
(2) matplotlib:把从pillow读到的图像转化为数组
(3) numpy:处理一下数组,比如维度,合并数组
(4) pickle:pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。
pickle.dump(obj, file, [,protocol])
注解:将对象obj保存到文件file中去。
pickle.load(file)
注解:从file中读取一个字符串,并将它重构为原来的python对象。
2.步骤:
(1) 将图片读出来
(2)将图片转成数组
(3) 处理一下数组,将所有图片合并为一个数组
(4)用pickle序列化,存入文本
3.代码如下:
# -*- coding:utf-8 -*- import pickle from PIL import Image import numpy as np import os import cv2 import matplotli