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( )