cifar-10 图像转为jpg
生活随笔
收集整理的這篇文章主要介紹了
cifar-10 图像转为jpg
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
dir_file目錄下需有這幾個文件
?
?
源代碼
#coding=utf-8 import cv2 import numpy as np import os#文件夾名 str_2 = './train_cifar10' str_1 = './test_cifar10'#判斷文件夾是否存在,不存在的話創建文件夾 if os.path.exists(str_1) == False: os.mkdir(str_1) if os.path.exists(str_2) == False: os.mkdir(str_2)# 解壓縮,返回解壓后的字典,f,encoding='bytes' def unpickle(file): import pickle fo = open(file, 'rb') dict = pickle.load(fo, encoding='bytes') fo.close() return dictdef cifar_jpg(dir_file): # 生成訓練集圖片,如果需要png格式,只需要改圖片后綴名即可。 for j in range(1, 6): dataName = dir_file + '/' + "data_batch_" + str(j) # 讀取當前目錄下的data_batch12345文件,dataName其實也是data_batch文件的路徑,本文和腳本文件在同一目錄下。 Xtr = unpickle(dataName) #print(Xtr) print(dataName + " is loading...")for i in range(0, 10000): img = np.reshape(Xtr[b'data'][i], (3, 32, 32)) # Xtr['data']為圖片二進制數據 img = img.transpose(1, 2, 0) # 讀取image picName = './train_cifar10/' + str(Xtr[b'labels'][i]) + '_' + str( i + (j - 1) * 10000) + '.jpg' # Xtr['labels']為圖片的標簽,值范圍0-9,本文中,train文件夾需要存在,并與腳本文件在同一目錄下。 cv2.imwrite(picName, img) print(dataName + " loaded.")print("test_batch is loading...")# 生成測試集圖片 testName = dir_file + '/' + 'test_batch' testXtr = unpickle(testName) for i in range(0, 10000): img = np.reshape(testXtr[b'data'][i], (3, 32, 32)) img = img.transpose(1, 2, 0) picName = './test_cifar10/' + str(testXtr[b'labels'][i]) + '_' + str(i) + '.jpg' cv2.imwrite(picName, img) print("test_batch loaded.") return#標簽與名字的對應關系 def label_name(): label_name_dict = { 'airplane': "0", 'automobile': "1", 'bird': "2", 'cat': "3", 'deer': "4", 'dog': "5", 'frog': "6", 'horse': "7", 'ship': "8", 'truck': "9" } return label_name_dictif __name__ == '__main__': dir_file = './cifar-10-batches-py' try: cifar_jpg(dir_file) except: print('函數報錯')?
總結
以上是生活随笔為你收集整理的cifar-10 图像转为jpg的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt 布局(水平、垂直、网格)
- 下一篇: mnist数据集图片提取出来