import glob import os import argparse from PIL import Image def make(img_dir, save_dir): output_path1 = 'img_270' output_path2 = 'img_180' output_path3 = 'img_90' output_path4 = 'img_0' if not os.path.exists(save_dir + '/' + output_path4): os.makedirs(save_dir + '/' + output_path4) if not os.path.exists(save_dir + '/' + output_path3): os.makedirs(save_dir + '/' + output_path3) if not os.path.exists(save_dir + '/' + output_path2): os.makedirs(save_dir + '/' + output_path2) if not os.path.exists(save_dir + '/' + output_path1): os.makedirs(save_dir + '/' + output_path1) img_list = os.listdir(img_dir) print(img_list) angle_list = [] for i in range(0, 24): angle_list.append(15 * i) for img_path in img_list: print(img_dir + '/' + img_path) img_name = img_path.split('.')[0] im = Image.open(img_dir + '/' + img_path) im = im.convert("RGB") # 把PNG格式转换成的四通道转成RGB的三通道 fp = open('all_list.txt', 'a') for angle in angle_list: im_rotate = im.rotate(angle, expand=0, fillcolor='#FFFFFF') if 45 < angle <= 135: output_path = output_path1 label = 3 elif 135 < angle <= 225: output_path = output_path2 label = 2 elif 225 < angle <= 315: output_path = output_path3 label = 1 else: output_path = output_path4 label = 0 im_rotate.save(save_dir + '/' + output_path + '/' + img_name + '_rotated_' + str(angle) + '.jpg') fp.writelines(output_path + '/' + img_name + '_rotated_' + str(angle) + '.jpg ' + str(label) + '\n') fp.close() if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('--img_dir', type=str, default='./img') parser.add_argument('--save_dir', type=str, default='./img_rotated') args = parser.parse_args() if not os.path.exists(args.save_dir): os.makedirs(args.save_dir) make(args.img_dir, args.save_dir)