训练模型的好坏有时候要跟样本数量有极大关系,通常每类样本需要几千上万张照片,而样本的采集通常并不容易,在获取少量样本时,可以采用以下方法来快速扩大样本,同时又不会造成训练的失真。已经经过验证,效果不错,希望对大家有帮助
from PIL import Image import os import os.path rootdir = "D:\\字母图库\\F\\" # 指明被遍历的文件夹 firstName = "F" for parent, dirnames, filenames in os.walk(rootdir): for filename in filenames: print('filename is :' + filename) currentPath = os.path.join(parent, filename) #name = filename.split(sep='-') temp = Image.open(currentPath).resize((28, 28)) #newname = name[0] + "-0" + filename[1:] newname = r"data\\ABCDE-TRANSPOSE\\" +firstName+"-0"+filename; temp.save(newname) #newname = name[0] + "-1" + filename[1:] out= temp.transpose(Image.FLIP_LEFT_RIGHT) # 重设宽120,高120 newname = r"data\\ABCDE-TRANSPOSE\\" +firstName+"-1"+filename; out.save(newname) #newname = name[0] + "-2" + filename[1:] out= temp.transpose(Image.ROTATE_90) newname = r"data\\ABCDE-TRANSPOSE\\" +firstName+"-2"+filename; out.save(newname) #newname = name[0] + "-3" + filename[1:] out= temp.transpose(Image.ROTATE_180) newname = r"data\\ABCDE-TRANSPOSE\\" +firstName+"-3"+filename; out.save(newname) #newname = name[0] + "-4" + filename[1:] out= temp.transpose(Image.ROTATE_270) newname = r"data\\ABCDE-TRANSPOSE\\" +firstName+"-4"+filename; out.save(newname) #newname = name[0] + "-5" + filename[1:] out= temp.transpose(Image.FLIP_TOP_BOTTOM) newname = r"data\\ABCDE-TRANSPOSE\\" +firstName+"-5"+filename; out.save(newname)