SDUMLA指静脉数据集 python划分代码分享

最近在做指静脉识别方向的探索,下午划分了一下山东大学的指静脉数据集。将其划分成了636个类,该数据集为106个志愿者左右手,每只手3根手指,我们以每根手指划分为一个类别,即106x2x3 = 636。分享一下划分该数据集的代码。

import os
import shutil

dir = 'D:/123/database/data_finger/Finger Vein Database'  #数据集路径
train_index = 1
test_index = 1

lists=os.listdir(dir)
print(lists)

try:
    os.mkdir("D:/123/database/data_finger/Finger_divide")  #这里换为划分后的文件路径
    os.mkdir("D:/123/database/data_finger/Finger_divide/train")  #下面的所有路径也换一下
    os.mkdir("D:/123/database/data_finger/Finger_divide/test")
except:
    pass

for i in lists:
    fpl = dir + '/' + i + '/left'
    fpr = dir + '/' + i + '/right'
    lists2 = os.listdir(fpl)
    if train_index < 10:
        i = "00" + str(train_index)
    elif train_index < 100:
        i = "0" + str(train_index)
    else:
        i = str(train_index)
    if int(train_index) + 1 < 10:
        i1 = "00" + str(int(train_index) + 1)
    elif int(train_index) + 1 < 100:
        i1 = "0" + str(int(train_index) + 1)
    else:
        i1 = str(int(train_index) + 1)
    if int(train_index) + 2 < 10:
        i2 = "00" + str(int(train_index) + 2)
    elif int(train_index) + 2 < 100:
        i2 = "0" + str(int(train_index) + 2)
    else:
        i2 = str(int(train_index) + 2)
    try:
        os.mkdir("D:/123/database/data_finger/Finger_divide/train/" + i)
        os.mkdir("D:/123/database/data_finger/Finger_divide/train/" + i1)
        os.mkdir("D:/123/database/data_finger/Finger_divide/train/" + i2)
        os.mkdir("D:/123/database/data_finger/Finger_divide/test/" + i)
        os.mkdir("D:/123/database/data_finger/Finger_divide/test/" + i1)
        os.mkdir("D:/123/database/data_finger/Finger_divide/test/" + i2)
    except:
        pass
    for j in lists2:
        if j[0] == 'i':
            if int(j[-5]) < 5:
                shutil.copyfile(fpl + '/' + j, "D:/123/database/data_finger/Finger_divide/train/" + i + "/" + j)
            else:
                shutil.copyfile(fpl + '/' + j, "D:/123/database/data_finger/Finger_divide/test/" + i + "/" + j)
        if j[0] == 'm':
            if int(j[-5]) < 5:
                shutil.copyfile(fpl + '/' + j, "D:/123/database/data_finger/Finger_divide/train/" + i1 + "/" + j)
            else:
                shutil.copyfile(fpl + '/' + j, "D:/123/database/data_finger/Finger_divide/test/" + i1 + "/" + j)
        if j[0] == 'r':
            if int(j[-5]) < 5:
                shutil.copyfile(fpl + '/' + j, "D:/123/database/data_finger/Finger_divide/train/" + i2 + "/" + j)
            else:
                shutil.copyfile(fpl + '/' + j, "D:/123/database/data_finger/Finger_divide/test/" + i2 + "/" + j)
    train_index += 3

    lists2 = os.listdir(fpr)
    if train_index < 10:
        i = "00" + str(train_index)
    elif train_index < 100:
        i = "0" + str(train_index)
    else:
        i = str(train_index)
    if int(train_index) + 1 < 10:
        i1 = "00" + str(int(train_index) + 1)
    elif int(train_index) + 1 < 100:
        i1 = "0" + str(int(train_index) + 1)
    else:
        i1 = str(int(train_index) + 1)
    if int(train_index) + 2 < 10:
        i2 = "00" + str(int(train_index) + 2)
    elif int(train_index) + 2 < 100:
        i2 = "0" + str(int(train_index) + 2)
    else:
        i2 = str(int(train_index) + 2)
    try:
        os.mkdir("D:/123/database/data_finger/Finger_divide/train/" + i)
        os.mkdir("D:/123/database/data_finger/Finger_divide/train/" + i1)
        os.mkdir("D:/123/database/data_finger/Finger_divide/train/" + i2)
        os.mkdir("D:/123/database/data_finger/Finger_divide/test/" + i)
        os.mkdir("D:/123/database/data_finger/Finger_divide/test/" + i1)
        os.mkdir("D:/123/database/data_finger/Finger_divide/test/" + i2)
    except:
        pass
    for j in lists2:
        if j[0] == 'i':
            if int(j[-5]) < 5:
                shutil.copyfile(fpl + '/' + j, "D:/123/database/data_finger/Finger_divide/train/" + i + "/" + j)
            else:
                shutil.copyfile(fpl + '/' + j, "D:/123/database/data_finger/Finger_divide/test/" + i + "/" + j)
        if j[0] == 'm':
            if int(j[-5]) < 5:
                shutil.copyfile(fpl + '/' + j, "D:/123/database/data_finger/Finger_divide/train/" + i1 + "/" + j)
            else:
                shutil.copyfile(fpl + '/' + j, "D:/123/database/data_finger/Finger_divide/test/" + i1 + "/" + j)
        if j[0] == 'r':
            if int(j[-5]) < 5:
                shutil.copyfile(fpl + '/' + j, "D:/123/database/data_finger/Finger_divide/train/" + i2 + "/" + j)
            else:
                shutil.copyfile(fpl + '/' + j, "D:/123/database/data_finger/Finger_divide/test/" + i2 + "/" + j)
    train_index += 3


  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值