diff --git a/add_distortion.py b/add_distortion.py index 3def4bb..a2334a3 100644 --- a/add_distortion.py +++ b/add_distortion.py @@ -3,6 +3,7 @@ import os import cv2 from tqdm import tqdm + func_dict = {'CS': color_saturation, 'CC': color_contrast, 'JPEG': jpeg_compression, 'GB': gaussian_blur} param_dict = {'CS': 0.4, 'CC': 0.85, @@ -16,18 +17,25 @@ help='path to the input video') parser.add_argument('--img_out', '-o', type=str, - default='./perturbations/CS', - help='path to the output video') + default=None, + help='path to the output video (defaults to ./perturbations/[type])') parser.add_argument( '--type', '-t', type=str, default='CS', help='distortion type: CS | CC | JPEG | GB') args = parser.parse_args() + + # Dynamic feature: Automatically matches output folder name to the chosen type if not specified + output_root = args.img_out or os.path.join('./perturbations', args.type) + for dir in tqdm(os.listdir(args.img_in)): for img in os.listdir(os.path.join(args.img_in, dir)): - ori_img = cv2.imread(os.path.join(args.img_in, dir, img)) + img_path = os.path.join(args.img_in, dir, img) + ori_img = cv2.imread(img_path) per_img = func_dict[args.type](ori_img, param_dict[args.type]) - if not os.path.exists(os.path.join(args.img_out, dir)): - os.makedirs(os.path.join(args.img_out, dir)) - cv2.imwrite(os.path.join(args.img_out, dir, img), per_img) + + save_dir = os.path.join(output_root, dir) + if not os.path.exists(save_dir): + os.makedirs(save_dir) + cv2.imwrite(os.path.join(save_dir, img), per_img)