| import argparse |
| import glob |
| import os |
| from PIL import Image |
|
|
|
|
| def main(args): |
| |
| |
| 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')) |
|
|
| |
| 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) |
|
|