как исправить "не может импортировать имя" imresize "ошибка при импорте этой функции из scipy.misc? - PullRequest
0 голосов
/ 22 мая 2019

Я использую 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 import imresize ImportError: невозможно импортировать имя 'Imresize'

1 Ответ

0 голосов
/ 21 июля 2019

Вы можете использовать подушку, как предложено в комментариях. Изменения для вашего кода будут такими, как указано ниже:

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