generate_data_augmentation_zone.py 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. # main imports
  2. import os, sys
  3. import argparse
  4. import pickle
  5. # image processing imports
  6. from PIL import Image
  7. from ipfml.processing import transform, segmentation
  8. from ipfml import utils
  9. # modules imports
  10. sys.path.insert(0, '') # trick to enable import of main folder module
  11. import custom_config as cfg
  12. from modules.utils import data as dt
  13. # getting configuration information
  14. zone_folder = cfg.zone_folder
  15. min_max_filename = cfg.min_max_filename_extension
  16. # define all scenes values
  17. scenes_list = cfg.scenes_names
  18. scenes_indexes = cfg.scenes_indices
  19. path = cfg.dataset_path
  20. zones = cfg.zones_indices
  21. seuil_expe_filename = cfg.seuil_expe_filename
  22. output_data_folder = cfg.output_data_folder
  23. image_scene_size = cfg.image_scene_size
  24. image_zone_size = cfg.image_zone_size
  25. possible_point_zone = cfg.possible_point_zone
  26. def main():
  27. parser = argparse.ArgumentParser(description="Compute and prepare data augmentation of scenes")
  28. parser.add_argument('--data', type=str, help="object filename saved using pickle", required=True)
  29. parser.add_argument('--scene', type=str, help="scene name to display click information", required=True, choices=cfg.scenes_names)
  30. parser.add_argument('--n', type=int, help="number of clics per zone wished")
  31. args = parser.parse_args()
  32. p_data = args.data
  33. p_scene = args.scene
  34. p_n = args.n
  35. # load data extracted by zones
  36. fileObject = open(p_data, 'rb')
  37. scenes_data = pickle.load(fileObject)
  38. scene_data = scenes_data[p_scene]
  39. # get scenes list
  40. scenes = os.listdir(path)
  41. # remove min max file from scenes folder
  42. scenes = [s for s in scenes if min_max_filename not in s]
  43. # go ahead each scenes
  44. for folder_scene in scenes:
  45. scene_path = os.path.join(path, folder_scene)
  46. # construct each zones folder name
  47. zones_folder = []
  48. zones_threshold = []
  49. # get zones list info
  50. for index in zones:
  51. index_str = str(index)
  52. if len(index_str) < 2:
  53. index_str = "0" + index_str
  54. current_zone = "zone"+index_str
  55. zones_folder.append(current_zone)
  56. zone_path = os.path.join(scene_path, current_zone)
  57. with open(os.path.join(zone_path, seuil_expe_filename)) as f:
  58. zones_threshold.append(int(f.readline()))
  59. if __name__== "__main__":
  60. main()