make_rotated.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import glob
  2. import os
  3. import argparse
  4. from PIL import Image
  5. def make(img_dir, save_dir):
  6. output_path1 = 'img_270'
  7. output_path2 = 'img_180'
  8. output_path3 = 'img_90'
  9. output_path4 = 'img_0'
  10. if not os.path.exists(save_dir + '/' + output_path4):
  11. os.makedirs(save_dir + '/' + output_path4)
  12. if not os.path.exists(save_dir + '/' + output_path3):
  13. os.makedirs(save_dir + '/' + output_path3)
  14. if not os.path.exists(save_dir + '/' + output_path2):
  15. os.makedirs(save_dir + '/' + output_path2)
  16. if not os.path.exists(save_dir + '/' + output_path1):
  17. os.makedirs(save_dir + '/' + output_path1)
  18. img_list = os.listdir(img_dir)
  19. print(img_list)
  20. angle_list = []
  21. for i in range(0, 24):
  22. angle_list.append(15 * i)
  23. for img_path in img_list:
  24. print(img_dir + '/' + img_path)
  25. img_name = img_path.split('.')[0]
  26. im = Image.open(img_dir + '/' + img_path)
  27. im = im.convert("RGB") # 把PNG格式转换成的四通道转成RGB的三通道
  28. fp = open('all_list.txt', 'a')
  29. for angle in angle_list:
  30. im_rotate = im.rotate(angle, expand=0, fillcolor='#FFFFFF')
  31. if 45 < angle <= 135:
  32. output_path = output_path1
  33. label = 3
  34. elif 135 < angle <= 225:
  35. output_path = output_path2
  36. label = 2
  37. elif 225 < angle <= 315:
  38. output_path = output_path3
  39. label = 1
  40. else:
  41. output_path = output_path4
  42. label = 0
  43. im_rotate.save(save_dir + '/' + output_path + '/' + img_name + '_rotated_' + str(angle) + '.jpg')
  44. fp.writelines(output_path + '/' + img_name + '_rotated_' + str(angle) + '.jpg ' + str(label) + '\n')
  45. fp.close()
  46. if __name__ == '__main__':
  47. parser = argparse.ArgumentParser()
  48. parser.add_argument('--img_dir', type=str, default='./img')
  49. parser.add_argument('--save_dir', type=str, default='./img_rotated')
  50. args = parser.parse_args()
  51. if not os.path.exists(args.save_dir):
  52. os.makedirs(args.save_dir)
  53. make(args.img_dir, args.save_dir)