SciPy最新官方文档的说明(20190730):

Functions from scipy.interpolate (spleval, spline, splmake, and spltopp) and functions from scipy.misc (bytescale, fromimage, imfilter, imread , imresize , imrotate, imsave, imshow, toimage) have been removed. The former set has been deprecated since v0.19.0 and the latter has been deprecated since v1.0.0. Similarly, aliases from scipy.misc (comb, factorial, factorial2, factorialk, logsumexp, pade, info, source, who) which have been deprecated since v1.0.0 are removed. SciPy documentation for v1.1.0 can be used to track the new import locations for the relocated functions.

文档中说明了在scipy的0.19.0版本和1.0.0版本中可以用到的 imread,imresize 函数在scipy的1.3.0版本中全部被遗弃。

如果在最新版scipy中继续使用这两个函数,会出现如下报错:

AttributeError: module 'scipy.misc' has no attribute 'imread'
AttributeError: module 'scipy.misc' has no attribute 'imresize'

然而网上大多数对这个问题的解决办法都是pip安装PIL或者pillow,这并不能解决到实际问题(因为scipy已经不支持这两个函数,pillow依赖库的安装与否不是根本问题)

下面给出这个两个函数的代替方案:

1. imread

previous-version

img = scipy.misc.imread(myImage)

now-version

import imageio
img = imageio.imread(myImage)

2. imresize

previous-version

img = scipy.misc.imresize(myImage, size=(num_px,num_px))

now-version

from PIL import Image
img = np.array(Image.fromarray(myImage).resize((num_px,num_px)))

注:这两个替代方案用到的库请自行安装,可以用pip也可以conda。

这里配合Andre Ng的第一课第四周的作业正好可以用,希望能对遇到这类问题的朋友给予帮助。

SciPy最新官方文档的说明(20190730):Functions from scipy.interpolate (spleval, spline, splmake, and spltopp) and functions from scipy.misc (bytescale, fromimage, imfilter, imread, imresize, imrotate, imsave, i...
无需降级scipy的情况下解决AttributeError: module ‘scipy.misc’ has no attribute ‘imread’, AttributeError: module ‘scipy.misc’ has no attribute ‘imresize’, AttributeError:module ‘scipy.misc’ has no attribute ‘imsave’问题 imreadimresizeimsave 最近遇到如下三个错误 AttributeError: module ‘scipy.misc’ has no attribute ‘imread
阅读文献代码时发现新版scipyimread,imsave,imresize弃用报错 搜索了一下发现可以用imageioimreadimsave代替原有的,用numpy的reshape来代替imresize 试了一下,不太行,文献imread有mode=‘L’,即读取灰度图,用imageio的话需要加上as_gray=True, resize不是简单的变形,而是有一个邻近差值interp=“nearest”,reshape貌似并不能完全解决这个问题 尝试了一下,感觉全部用pillow读取和处理
from scipy.misc import imread, imsave, imresize # Read an JPEG image into a numpy array img = imread('assets/cat.jpg') print(img.dtype, img.shape) img_tinted = img * [1, 0.95, 0.9] img_tinted = imresize(img_tinted, (300, 300)) imsave('assets/cat_t scipy.misc.imresize 不同于普通的reshape, imresize不是单纯的改变图像矩阵的维度,而是能将图片重采样为指定像素,这样给深度学习训练图像数据带来方便。 import numpy as np import matplotlib....
在进行练习Python词云WordCloud练习时候,想用一张特殊形状背景为白色的照片生成一张特殊形状的词云.png图片,这时候需要用到imread方法。 import jieba import wordcloud from scipy. misc import imread 出现错误:cannot import name imread 然后开始寻找解决方案,找遍了网上的参考资料,有如下几种可能的情况: 1.没有安装Pillow。 解决方案:pip install pillow或者将下载好的pillow包放入指定的目录,并用pip3 install Pillow-(版本)-cp版本-cp版
SciPyimsave弃用解决方案 ImportError: cannot import name 'imsave' from 'scipy.misc' 这是因为SciPy1.3.0版本之后就弃用imsave函数 使用imageio库作为替代方案 pip install imageio conda安装的话应该也可以使用 conda install imageio 首先这样导入: import imageio 然后在导入的地方,加上以下代码就可以解决imsave不能使用的问