You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
import pickle as p
|
|
import numpy as np
|
|
from PIL import Image
|
|
|
|
|
|
def load_CIFAR_batch(filename):
|
|
"""load single batch of cifar"""
|
|
with open(filename, "rb") as f:
|
|
datadict = p.load(f, encoding="bytes")
|
|
# 以字典的形式取出数据
|
|
X = datadict[b"data"]
|
|
Y = datadict[b"fine_labels"]
|
|
try:
|
|
X = X.reshape(10000, 3, 32, 32)
|
|
except:
|
|
X = X.reshape(50000, 3, 32, 32)
|
|
Y = np.array(Y)
|
|
print(Y.shape)
|
|
return X, Y
|
|
|
|
|
|
if __name__ == "__main__":
|
|
mode = "train"
|
|
imgX, imgY = load_CIFAR_batch(f"./cifar-100-python/{mode}")
|
|
with open(f"./cifar-100-python/{mode}_imgs/img_label.txt", "a+") as f:
|
|
for i in range(imgY.shape[0]):
|
|
f.write("Crop_img" + str(i) + " " + str(imgY[i]) + "\n")
|
|
|
|
for i in range(imgX.shape[0]):
|
|
imgs = imgX[i]
|
|
img0 = imgs[0]
|
|
img1 = imgs[1]
|
|
img2 = imgs[2]
|
|
i0 = Image.fromarray(img0)
|
|
i1 = Image.fromarray(img1)
|
|
i2 = Image.fromarray(img2)
|
|
img = Image.merge("RGB", (i0, i1, i2))
|
|
name = "Crop_img" + str(i) + ".png"
|
|
img.save(f"./cifar-100-python/{mode}_imgs/" + name, "png")
|
|
print("save successfully!")
|