使用opencv将mnist数据集保存在计算机上

许多人在使用mnist数据集时都是直接调用,那么如果想将mnist数据集保存在本机中该怎么做呢

首先我们要知道mnist数据集中的数据时什么样的

如下所示,为训练集中的第一张图片的部分数据,其为一维数组,共有784个数(这个矩阵表达的数好像是3)

然后需要将此一维数组转换为二维矩阵,但时如果就直接进行转换或是转换成二维数组之后也不对数据进行改变的话,保存为图片之后是无法肉眼进行识别的。所以我们要将所有大于0的数改成255.这样就能够肉眼识别了。

如下图

将二维数组改变之后就可以使用opencv进行存储了。

代码如下

from tensorflow.examples.tutorials.mnist import input_data
import cv2 as cv
import numpy
from PIL import Image
import os 

#引入mnist数据集
mnist = input_data.read_data_sets("MNIST_data/",one_hot=True)

#建立保存路径
save_dir = "MNIST_data/save"
if os.path.exists(save_dir) is False:
    os.mkdir(save_dir)

#循环写入图片
for i in range(1):
    new_image = mnist.train.images[i,:]
    #print(new_image)
    #将所有大于0的数更改为255
    for i in range(len(new_image)):
        if new_image[i] > 0:
            new_image[i] =255
    print(new_image)
    #new_image = numpy.array(new_image)
    #更改维度
    new_image = new_image.reshape(28,28)
    print(new_image.shape)
    filename = save_dir + 'mnist_train_%d.jpg' % i
    #使用pillow写入图片
    Image.fromarray((new_image*255).astype('uint8'),mode='L').save(filename)
    #使用opencv写入图片
    
    cv.imwrite("2.jpg",new_image)
    img = cv.imread("2.jpg")
    

最终的显示结果如下:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值