in eval_retrieval.py [0:0]
def load_and_prepare_image(self, fname, roi=None):
# Read image, get aspect ratio, and resize such as the largest side equals S
im = Image.open(fname)
im_size_hw = np.array((im.size[1], im.size[0]))
if self.S == -1:
ratio = 1.0
elif self.S == -2:
if np.max(im_size_hw) > 124:
ratio = 1024.0/np.max(im_size_hw)
else:
ratio = -1
else:
ratio = float(self.S)/np.max(im_size_hw)
new_size = tuple(np.round(im_size_hw * ratio).astype(np.int32))
im_resized = self.transforms(im.resize((new_size[1], new_size[0]), Image.BILINEAR))
# If there is a roi, adapt the roi to the new size and crop. Do not rescale
# the image once again
if roi is not None:
# ROI format is (xmin,ymin,xmax,ymax)
roi = np.round(roi * ratio).astype(np.int32)
im_resized = im_resized[:, roi[1]:roi[3], roi[0]:roi[2]]
return im_resized