Spaces:
Running
on
Zero
Running
on
Zero
| 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) | |