run_dataset_resize.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import os
  2. import sys
  3. import cv2
  4. import numpy as np
  5. from vi_core.img_resize import resize
  6. from_dir = sys.argv[1]
  7. to_dir = from_dir
  8. resize_param = 1
  9. if len(sys.argv) == 4:
  10. to_dir = sys.argv[2]
  11. resize_param = float(sys.argv[3])
  12. else:
  13. resize_param = float(sys.argv[2])
  14. from_class_dirs = os.listdir(from_dir)
  15. class_num = len(from_class_dirs)
  16. for i in range(class_num):
  17. from_class_dir = from_class_dirs[i]
  18. print('{}/{} {}'.format(i+1, class_num, from_class_dir))
  19. to_class_dir = os.path.join(to_dir, from_class_dir)
  20. if not os.path.exists(to_class_dir):
  21. os.makedirs(to_class_dir)
  22. from_names = os.listdir(os.path.join(from_dir, from_class_dir))
  23. from_names = [n for n in from_names if n.lower().endswith('.jpg')]
  24. name_num = len(from_names)
  25. for j in range(name_num):
  26. from_name = from_names[j]
  27. basename, ext = os.path.splitext(from_name)
  28. from_jpg = os.path.join(from_dir, from_class_dir, from_name)
  29. to_jpg = os.path.join(to_class_dir, from_name)
  30. im_inp = cv2.imread(from_jpg)
  31. if resize_param > 1:
  32. im_inp, _, _ = resize(im_inp, int(resize_param), int(resize_param), 1)
  33. elif resize_param < 1:
  34. im_inp, _, _ = resize(im_inp, -1, -1, float(resize_param))
  35. cv2.imwrite(to_jpg, im_inp)
  36. print(' {}/{} {}'.format(j+1, name_num, from_name))