Spaces:
Runtime error
Runtime error
| import argparse | |
| import cv2 | |
| import glob | |
| import os | |
| def main(args): | |
| txt_file = open(args.meta_info, 'w') | |
| for folder, root in zip(args.input, args.root): | |
| img_paths = sorted(glob.glob(os.path.join(folder, '*'))) | |
| for img_path in img_paths: | |
| status = True | |
| if args.check: | |
| # read the image once for check, as some images may have errors | |
| try: | |
| img = cv2.imread(img_path) | |
| except (IOError, OSError) as error: | |
| print(f'Read {img_path} error: {error}') | |
| status = False | |
| if img is None: | |
| status = False | |
| print(f'Img is None: {img_path}') | |
| if status: | |
| # get the relative path | |
| img_name = os.path.relpath(img_path, root) | |
| print(img_name) | |
| txt_file.write(f'{img_name}\n') | |
| if __name__ == '__main__': | |
| """Generate meta info (txt file) for only Ground-Truth images. | |
| It can also generate meta info from several folders into one txt file. | |
| """ | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument( | |
| '--input', | |
| nargs='+', | |
| default=['datasets/DF2K/DF2K_HR', 'datasets/DF2K/DF2K_multiscale'], | |
| help='Input folder, can be a list') | |
| parser.add_argument( | |
| '--root', | |
| nargs='+', | |
| default=['datasets/DF2K', 'datasets/DF2K'], | |
| help='Folder root, should have the length as input folders') | |
| parser.add_argument( | |
| '--meta_info', | |
| type=str, | |
| default='datasets/DF2K/meta_info/meta_info_DF2Kmultiscale.txt', | |
| help='txt path for meta info') | |
| parser.add_argument('--check', action='store_true', help='Read image to check whether it is ok') | |
| args = parser.parse_args() | |
| assert len(args.input) == len(args.root), ('Input folder and folder root should have the same length, but got ' | |
| f'{len(args.input)} and {len(args.root)}.') | |
| os.makedirs(os.path.dirname(args.meta_info), exist_ok=True) | |
| main(args) | |