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