这篇教程 miniImagenet数据集处理写得很实用,希望能帮到您。
miniImagenet数据集的结构为:所有的照片放在一个文件夹中,另外有三个csv文件分别是:train.csv,val.csv,test.csv,三个csv文件都有两列,第一列是文件名,第二列是标签。我在使用数据集时,把train数据,test数据,val数据分别都保存到对应的标签下。
处理后的目录结构如下:
具体处理代码: import csv import os from PIL import Image train_csv_path="C:/Users/MMatx/Desktop/研究生/mini-imagenet/mini-imagenet/train.csv" val_csv_path="C:/Users/MMatx/Desktop/研究生/mini-imagenet/mini-imagenet/val.csv" test_csv_path="C:/Users/MMatx/Desktop/研究生/mini-imagenet/mini-imagenet/test.csv" train_label={} val_label={} test_label={} with open(train_csv_path) as csvfile: csv_reader=csv.reader(csvfile) birth_header=next(csv_reader) for row in csv_reader: train_label[row[0]]=row[1] with open(val_csv_path) as csvfile: csv_reader=csv.reader(csvfile) birth_header=next(csv_reader) for row in csv_reader: val_label[row[0]]=row[1] with open(test_csv_path) as csvfile: csv_reader=csv.reader(csvfile) birth_header=next(csv_reader) for row in csv_reader: test_label[row[0]]=row[1] img_path="C:/Users/MMatx/Desktop/研究生/mini-imagenet/mini-imagenet/images" new_img_path="C:/Users/MMatx/Desktop/研究生/mini-imagenet/mini-imagenet/ok" for png in os.listdir(img_path): path = img_path+ '/' + png im=Image.open(path) if(png in train_label.keys()): tmp=train_label[png] temp_path=new_img_path+'/train'+'/'+tmp if(os.path.exists(temp_path)==False): os.makedirs(temp_path) t=temp_path+'/'+png im.save(t) # with open(temp_path, 'wb') as f: # f.write(path) elif(png in val_label.keys()): tmp = train_label[png] temp_path = new_img_path + '/val' + '/' + tmp if (os.path.exists(temp_path) == False): os.makedirs(temp_path) t = temp_path + '/' + png im.save(t) elif(png in test_label.keys()): tmp = train_label[png] temp_path = new_img_path + '/test' + '/' + tmp if (os.path.exists(temp_path) == False): os.makedirs(temp_path) t = temp_path + '/' + png im.save(t)
涉及到的python知识:
1、python独写csv文件
使用pythonI/O读取csv文件是按照行读取,每一行都是一个List列表,可以通过使用List列表带获取每一行每一列的元素
2、python判断文件/目录是否存在
(1)判断文件是否存在:os.path.exists(path)
(2)新建一个目录:os.makedirs(path)
3、将图片保存在新的文件夹
使用 fromPIL import Image
img=Image.open(path)
img.save(new_path)
4、python中自带的glob支持文件的通配检索
miniImagenet数据集的结构为:所有的照片放在一个文件夹中,另外有三个csv文件分别是:train.csv,val.csv,test.csv,三个csv文件都有两列,第一列是文件名,第二列是标签。我在使用数据集时,把train数据,test数据,val数据分别都保存到对应的标签下。
处理后的目录结构如下:
具体处理代码:
涉及到的python知识:
1、python独写csv文件
使用pythonI/O读取csv文件是按照行读取,每一行都是一个List列表,可以通过使用List列表带获取每一行每一列的元素
2、python判断文件/目录是否存在
(1)判断文件是否存在:os.path.exists(path)
(2)新建一个目录:os.makedirs(path)
3、将图片保存在新的文件夹
使用 fromPIL import Image
img=Image.open(path)
img.save(new_path)
4、python中自带的glob支持文件的通配检索 ———————————————— 版权声明:本文为CSDN博主「Smiler_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/Smiler_/article/details/105227634 MINIST数据库_本地图片化 常用小样本数据集介绍与下载 |