Spaces:
Runtime error
Runtime error
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) | |