import os
import cv2
import random
import shutil
import numpy as np
def get_data_crop(k):
# 获取所有病人序列名称与所有训练文件名称
name_list, file_list = [], []
for root, dirs, files in os.walk('./img'):
for f in files:
if f.split('-')[-2] not in name_list:
name_list.append(f.split('-')[-2])
# print(name_list)
file_list.append(root + '/' + f)
random.shuffle(name_list)
#k折交叉验证
for i in range(0,2):
print('name_list:',len(name_list))
fold_size = len(name_list) // k
test_name = name_list[i*fold_size:(i+1)*fold_size]
train_file, test_file = [], []
print('len(test_name):',len(test_name))
print(test_name)
for file in file_list:
print(file.split('/')[-1].split('-')[-2])
if file.split('/')[-1].split('-')[-2] in test_name:
try:
shutil.copy(file,'.\\C\\K10\\test_'+str(i+1)+'\\M\\'+file.split('/')[-1])
shutil.copy(file.replace('img','compound'), '.\\C\\K10\\test_' + str(i+1) + '\\I\\' + file.split('/')[-1])
except Exception:
os.makedirs('.\\C\\K10\\test_'+str(i+1)+'\\M\\')
shutil.copy(file, '.\\C\\K10\\test_'+str(i+1) +'\\M\\' +file.split('/')[-1])
os.makedirs('.\\C\\K10\\test_'+ str(i+1) + '\\I\\')
shutil.copy(file.replace('img', 'compound'),'.\\C\\K10\\test_' + str(i+1) + '\\I\\' + file.split('/')[-1])
else:
try:
shutil.copy(file, '.\\C\\K10\\train_' + str(i+1) +'\\M\\'+file.split('/')[-1])
shutil.copy(file.replace('img', 'compound'),'.\\C\\K10\\train_' + str(i+1) + '\\I\\' + file.split('/')[-1])
except Exception:
print(file)
print(i+1)
os.makedirs('.\\C\\K10\\train_'+str(i+1) +'\\M\\')
shutil.copy(file, '.\\C\\K10\\train_'+str(i+1) + '\\M\\' +file.split('/')[-1])
os.makedirs('.\\C\\K10\\train_' + str(i+1) + '\\I\\' )
shutil.copy(file.replace('compound', 'img'),'.\\C\\K10\\train_' + str(i+1) + '\\I\\' + file.split('/')[-1])
get_data_crop(10)
K折交叉验证
最新推荐文章于 2024-04-21 18:42:26 发布