36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding:utf-8 -*-
|
|
#############################################################
|
|
# File: StyleResize.py
|
|
# Created Date: Friday April 17th 2020
|
|
# Author: Chen Xuanhong
|
|
# Email: chenxuanhongzju@outlook.com
|
|
# Last Modified: Saturday, 18th April 2020 1:39:53 pm
|
|
# Modified By: Chen Xuanhong
|
|
# Copyright (c) 2020 Shanghai Jiao Tong University
|
|
#############################################################
|
|
from PIL import Image
|
|
import torchvision.transforms.functional as F
|
|
|
|
class StyleResize(object):
|
|
|
|
def __call__(self, images):
|
|
th, tw = images.size # target height, width
|
|
if max(th,tw) > 1800:
|
|
alpha = 1800. / float(min(th,tw))
|
|
h = int(th*alpha)
|
|
w = int(tw*alpha)
|
|
images = F.resize(images, (h, w))
|
|
if max(th,tw) < 800:
|
|
# Resize the smallest side of the image to 800px
|
|
alpha = 800. / float(min(th,tw))
|
|
if alpha < 4.:
|
|
h = int(th*alpha)
|
|
w = int(tw*alpha)
|
|
images = F.resize(images, (h, w))
|
|
else:
|
|
images = F.resize(images, (800, 800))
|
|
return images
|
|
|
|
def __repr__(self):
|
|
return self.__class__.__name__ + '()' |