您当前的位置:首页 > IT编程 > 数据集
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch |

自学教程: miniImagenet数据集处理

51自学网 2021-10-06 20:14:11
  数据集
这篇教程 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数据库_本地图片化
常用小样本数据集介绍与下载
51自学网,即我要自学网,自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1