J'utilise google colab pour exécuter du code python et essayer de réduire les images.
from keras.layers import Lambda import tensorflow as tf from skimage import data, io, filters import numpy as np from numpy import array from numpy.random import randint from scipy.misc import imresize import os import sys import matplotlib.pyplot as plt plt.switch_backend('agg') # Takes list of images and provide LR images in form of numpy array def lr_images(images_real , downscale): images = [] for img in range(len(images_real)): images.append(imresize(images_real[img],[images_real[img].shape[0]//downscale,images_real[img].shape[1]//downscale], interp='bicubic', mode=None)) images_lr = array(images) return images_lr
Il devrait réduire l'échelle des images mais afficher cette erreur.
from scipy.misc import imresize ImportError: impossible d'importer le nom 'imresize'
3 Réponses :
Vous pouvez utiliser un oreiller comme suggéré dans les commentaires. Les modifications apportées à votre code seraient les suivantes:
images.append(np.array(PIL.Image.fromarray( (images_real[img]*255).astype(np.uint8).resize( [images_real[img].shape[0]//downscale, images_real[img].shape[1]//downscale],resample=PIL.Image.BICUBIC)))
Si votre image est représentée sous forme de flottant, vous obtiendrez une erreur indiquant "Impossible de gérer ce type de données". Dans ce cas, vous devez convertir l'image au format uint comme ceci:
import PIL images.append(np.array(PIL.Image.fromarray(images_real[img]).resize( [images_real[img].shape[0]//downscale, images_real[img].shape[1]//downscale],resample=PIL.Image.BICUBIC)))
Vous pouvez essayer celui-ci:
skimage.transform.resize
https://scikit-image.org/docs/stable/auto_examples/transform/plot_rescale.html
installez scipy 1.1.0 par:
pip install scipy==1.1.0
imresize
a été supprimé de scipy à partir de la version 1.3, car il s'agit d'un duplicata de fonctionnalités disponibles ailleurs - en particulier, le module Pillow.