將cifar10資料轉成圖片
阿新 • • 發佈:2018-11-05
#將cifar10轉成圖片 import numpy as np import matplotlib.image as plimg from PIL import Image import pickle as p def load_CIFAR_batch(filename): with open(filename, 'rb')as f: datadict = p.load(f, encoding='latin1') X = datadict['data'] Y = datadict['labels'] X = X.reshape(10000, 3, 32, 32) Y = np.array(Y) return X, Y def load_CIFAR_Labels(filename): with open(filename, 'rb') as f: lines = [x for x in f.readlines()] print(lines) if __name__ == "__main__": # 檔案的路徑 load_CIFAR_Labels("./cifar-10-batches-py/batches.meta") imgX, imgY = load_CIFAR_batch("./cifar-10-batches-py/data_batch_1") print(imgX.shape) for i in range(1000): imgs = imgX[i] img0 = imgs[0] img1 = imgs[1] img2 = imgs[2] i0 = Image.fromarray(img0) # 從資料,生成image物件 i1 = Image.fromarray(img1) i2 = Image.fromarray(img2) img = Image.merge("RGB", (i0, i1, i2)) name = "img" + str(i) + ".png" img.save("cifar10_images/" + name, "png") for j in range(imgs.shape[0]): img = imgs[j] name = "img" + str(i) + str(j) + ".png" plimg.imsave("cifar10_images/" + name, img)