from importlib.resources import path
import os
import random
import shutil
def get_list(img_path):
return [os.path.join(img_path,f) for f in os.listdir(img_path) if f.endswith('.jpg')]
def get_dataset(txt_path, img_path, save_txt_path, save_img_path,p_train):
data_img = os.listdir(img_path)
img_length = len(data_img)
random.shuffle(data_img)
print(data_img)
exit()
length_img = int(img_length*p_train)
for n in data_img[length_img:]:
shutil.copy(img_path+'/'+n,save_img_path+'/'+n)
select_txt(save_img_path,txt_path,save_txt_path)
def select_txt(save_img_path,txt_path,save_txt_path):
img_ = os.listdir(save_img_path)
txt_ = os.listdir(txt_path)
for i in img_:
txt_name = i[:-4] + '.txt'
if txt_name in txt_:
shutil.copy(save_txt_path+'/'+txt_name,txt_path+'/'+txt_name)
def rename(save_txt_path,save_img_path):
txt_ = os.listdir(save_txt_path)
img_ = os.listdir(save_img_path)
i = 1
for file in txt_:
new_txt_name = file.replace(file,"%d.jpg"%i).zfill(10)
print(new_txt_name)
os.rename(os.path.join(save_txt_path,file),os.path.join(save_txt_path,new_txt_name))
i +=1
for file in img_:
new_img_name = file.replace(file,"%d.jpg"%i).zfill(10)
print(new_img_name)
os.rename(os.path.join(save_img_path,file),os.path.join(save_img_path,new_img_name))
i +=1
if __name__ == '__main__':
txt_path = '数据集分割测试/img'
img_path = '数据集分割测试/txt'
save_txt_path = '数据集分割测试/save_txt'
save_img_path = '数据集分割测试/save_img'
p_train = 0.7
get_dataset(txt_path,img_path,save_txt_path,save_img_path,p_train)
rename(save_txt_path,save_img_path)
import shutil
import random
import os
import pathlib
img_path = 'car/images/'
label_path = 'car/txt/'
len_img_path = os.listdir(img_path)
len_label_path = os.listdir(label_path)
print(len(len_img_path))
print(len(len_label_path))
save_train_img = 'car/save_train_img/'
save_train_label = 'car/save_train_label/'
save_test_img = 'car/save_test_img/'
save_test_label = 'car/save_test_label/'
train_percent = 0.7
def mkdir():
if not os.path.exists(img_path):
os.makedirs(img_path)
if not os.path.exists(label_path):
os.makedirs(label_path)
if not os.path.exists(save_train_img):
os.makedirs(save_train_img)
if not os.path.exists(save_train_label):
os.makedirs(save_train_label)
if not os.path.exists(save_test_img):
os.makedirs(save_test_img)
if not os.path.exists(save_test_label):
os.makedirs(save_test_label)
def main():
mkdir()
total_txt = os.listdir(label_path)
num_all_txt = len(total_txt)
list_all_txt = range(num_all_txt)
num_train = int(num_all_txt*train_percent)
train = random.sample(list_all_txt,num_train)
test = [i for i in list_all_txt if i not in train]
print("训练集数目:{}, 测试集数目:{}".format(len(train),len(test)))
for i in list_all_txt:
name = total_txt[i][:-4]
if i in train:
shutil.copyfile(img_path + '/'+ name + '.jpg', save_train_img + '/'+ name + '.jpg')
shutil.copyfile(label_path +'/' + name + '.txt',save_train_label + name +'.txt')
else:
shutil.copyfile(img_path + '/'+ name + '.jpg',save_test_img + name + '.jpg')
shutil.copyfile(label_path +'/' + name + '.txt',save_test_label + name + '.txt')
if __name__=="__main__":
main()