6
votes

comment corriger l'erreur "impossible d'importer le nom" imresize "lors de l'importation de cette fonction depuis scipy.misc?

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'


1 commentaires

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.


3 Réponses :


0
votes

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)))


0 commentaires

1
votes

Vous pouvez essayer celui-ci:

skimage.transform.resize

https://scikit-image.org/docs/stable/auto_examples/transform/plot_rescale.html


0 commentaires

0
votes

installez scipy 1.1.0 par:

pip install scipy==1.1.0


0 commentaires