Source code for draugr.numpy_utilities.resize

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

__author__ = "Christian Heider Nielsen"
__doc__ = r"""

           Created on 17/07/2020
           """

from typing import Tuple

import PIL.Image
import numpy

from draugr.visualisation.pillow_utilities import np_array_to_pil_img

__all__ = ["resize_array"]

from warg import passes_kws_to


[docs]@passes_kws_to(PIL.Image.Image.resize) def resize_array(x: numpy.ndarray, size: Tuple[int, int], **kwargs) -> numpy.ndarray: """description""" assert x.ndim in [3, 4], "Only 3D and 4D Tensors allowed!" if isinstance(size, int): size = (size, size) if x.ndim == 4: # 4D Tensor res = [] for i in range(x.shape[0]): img = np_array_to_pil_img(x[i]) img = img.resize(size, **kwargs) img = numpy.asarray(img, dtype="float32") img = numpy.expand_dims(img, axis=0) img /= 255.0 res.append(img) res = numpy.concatenate(res) # res = numpy.expand_dims(res, axis=1) # TODO Wrong? else: # 3D Tensor img = np_array_to_pil_img(x) img = img.resize(size, **kwargs) res = numpy.asarray(img, dtype="float32") res = numpy.expand_dims(res, axis=0) res /= 255.0 return res
if __name__ == "__main__": print(resize_array(numpy.zeros((12, 10, 10, 3)), 5).shape)