Spaces:
Running
on
Zero
Running
on
Zero
| import argparse | |
| import glob | |
| import os | |
| from PIL import Image | |
| def main(args): | |
| # For DF2K, we consider the following three scales, | |
| # and the smallest image whose shortest edge is 400 | |
| scale_list = [0.75, 0.5, 1 / 3] | |
| shortest_edge = 400 | |
| path_list = sorted(glob.glob(os.path.join(args.input, "*"))) | |
| for path in path_list: | |
| print(path) | |
| basename = os.path.splitext(os.path.basename(path))[0] | |
| img = Image.open(path) | |
| width, height = img.size | |
| for idx, scale in enumerate(scale_list): | |
| print(f"\t{scale:.2f}") | |
| rlt = img.resize( | |
| (int(width * scale), int(height * scale)), resample=Image.LANCZOS | |
| ) | |
| rlt.save(os.path.join(args.output, f"{basename}T{idx}.png")) | |
| # save the smallest image which the shortest edge is 400 | |
| if width < height: | |
| ratio = height / width | |
| width = shortest_edge | |
| height = int(width * ratio) | |
| else: | |
| ratio = width / height | |
| height = shortest_edge | |
| width = int(height * ratio) | |
| rlt = img.resize((int(width), int(height)), resample=Image.LANCZOS) | |
| rlt.save(os.path.join(args.output, f"{basename}T{idx+1}.png")) | |
| if __name__ == "__main__": | |
| """Generate multi-scale versions for GT images with LANCZOS resampling. | |
| It is now used for DF2K dataset (DIV2K + Flickr 2K) | |
| """ | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument( | |
| "--input", type=str, default="datasets/DF2K/DF2K_HR", help="Input folder" | |
| ) | |
| parser.add_argument( | |
| "--output", | |
| type=str, | |
| default="datasets/DF2K/DF2K_multiscale", | |
| help="Output folder", | |
| ) | |
| args = parser.parse_args() | |
| os.makedirs(args.output, exist_ok=True) | |
| main(args) | |