从scipy.misc导入此函数时,如何解决“无法导入名称'imresize'错误?

时间:2019-05-22 16:08:02

标签: python scipy image-resizing

我正在使用Google colab来运行python代码并尝试缩小图像尺寸。

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

它应该缩小图像的比例,但是会显示此错误。

  从scipy.misc中

导入imresize ImportError:无法导入名称   'imresize'

7 个答案:

答案 0 :(得分:1)

这对我有用... 在导入中我改变了这个:

from scipy.misc import imresize

为此:

from skimage.transform import resize

以及我更改的实现示例:

这个:

img = imresize(img, (150, 150, 3)).astype('float32')/255.

为此:

img = resize(img, (150, 150, 3)).astype('float32')/255.

我希望这也能帮助你...

答案 1 :(得分:0)

您可以按照评论的建议使用枕头。您的代码更改如下所述:

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

如果图像以浮点数表示,则会出现错误消息“无法处理此数据类型”。在这种情况下,您需要将图像转换为uint格式,如下所示:

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

答案 2 :(得分:0)

您可以尝试以下一种方法:

skimage.transform.resize

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

答案 3 :(得分:0)

通过以下方式安装scipy 1.1.0:

pip install scipy==1.1.0

答案 4 :(得分:0)

已弃用。 改用cv2调整大小功能

import cv2
size = (80,80)
cv2.resize(img, size)

答案 5 :(得分:-1)

imresize1.3.0 之后不可用。

您可以使用 Image.resize from PIL

安装pilow:

pip install Pillow

然后导入

from PIL import Image.resize as imresize

答案 6 :(得分:-1)

我遇到了类似的问题,解决方法如下:

import scpy

并且使用了函数,因为它是 scipy.misc.imresize(args) 保罗