按照Fashion-MNIST的数据格式制作,上代码
import os
from PIL import Image
from array import *
from random import shuffle
import sys
# import numpy as np
#change the pixel about images
def changePixel(dir_in, width, height, dir_out):
image = Image.open(os.path.join(dir_in))
resized_image = image.resize((width, height), Image.ANTIALIAS)
resized_image.save(os.path.join(dir_out))
# 从自己的数据集导入,制作成MNIST格式导出保存
Names = [['./data/XXXX_train_images','data/XXXX_minist_train'],
['./data/XXXX_test_images','data/XXXX_minist_test']]
for name in Names:
data_image = array('B')
data_label = array('B')
FileList = []
# for dirname in os.listdir(name[0])[1:]: # [1:] Excludes .DS_Store from Mac OS
# path = os.path.join(name[0],dirname)
# print(path)
# for filename in os.listdir(path):
# print(filename + "this is filename")
# if filename.endswith(".png"):
# FileList.append(os.path.join(name[0],dirname,filename))
for filename in os.listdir(name[0]):
# print(filename + " this is filename")
if filename.endswith(".png"):
FileList.append(os.path.join(name[0],filename))
#打乱顺序对本案例没有什么作用
shuffle(FileList)
for filename in FileList:
# print(type(filename.split('\\')[2]))
# label = int(filename.split('\\')[2])
#change the pixel about images into 256x256
width = 256
height = 256
changePixel(filename, width, height, filename)
# label = filename.split('\\')[2]
# # print(label)
label = filename.split('\\')[1]
WithoutPNG_label = int(filename.split('\\')[1].split('.')[0]) #把.png去掉才能int
#使用len得到长度后,-4,即减去.png,这样就不需要split('.'),避免拆分小数
# label_len = len(filename)
# print(filename)
# WithoutPNG_label = float(filename[:label_len - 4].split('\\')[1]) #把.png去掉才能int
print(WithoutPNG_label)
# Im = Image.open(filename)
Im = Image.open(filename).convert('L') #默认支持黑白图片,因此修改灰度值
pixel