假设拥有的数据文件是这种类型的,按百分比划分训练集和测试集,
数据文件.PNG数据文件2.PNG
导入库,和预定义路径
import os
import cv2
import random
filepath=r"C:\Users\bxzyz\Desktop\doc\ocr\data\EnglishImg\English\Img\GoodImg\Bmp"
train_img_savepath=r"C:\Users\bxzyz\Desktop\data\train\imgs"
test_img_savepath=r"C:\Users\bxzyz\Desktop\data\test\imgs"
train_label_savepath=r"C:\Users\bxzyz\Desktop\data\train\labels"
test_label_savepath=r"C:\Users\bxzyz\Desktop\data\test\labels"
存图和标签
percent=0.6#use 60% image to train
for item in os.listdir(filepath):
imgpath=os.path.join(filepath,item)
for imgname in os.listdir(imgpath):
srcimg_path=os.path.join(imgpath,imgname)
img=cv2.imread(srcimg_path)
if random.random()<percent:
save_img_name=os.path.join(train_img_savepath,imgname)
cv2.imwrite(save_img_name,img)#train data
labelname =os.path.join(train_label_savepath, 'labels.txt')
with open(labelname,'a') as f: # 如果filename不存在会自动创建, 'w'表示写数据,写之前会清空文件中的原有数据!
f.write(imgname)
f.write("\n")
else:
save_img_name=os.path.join(test_img_savepath,imgname)
cv2.imwrite(save_img_name,img)#train data
labelname =os.path.join(test_label_savepath, 'labels.txt')
with open(labelname,'a') as f: # 如果filename不存在会自动创建, 'w'表示写数据,写之前会清空文件中的原有数据!'a',表示往后添加
f.write(imgname)
f.write("\n")
网友评论