如题,Python代码报错,其完整错误信息如下:
from scipy.misc import imresize
ImportError: cannot import name 'imresize'
在某些情形下,可以通过安装Pillow(命令:pip install pillow
)来解决,然而自己的环境中已经安装了Pillow却还是报上述错误,那么应该是别的原因引起的。
通过查找资料得知,imresize已经被最新版本的SciPy库所弃用,而自己报错的Python环境的SciPy库版本为1.3.0,这也正是出现上述问题的原因。
imresize is deprecated! imresize is deprecated in SciPy 1.0.0, and will be removed in 1.3.0.
---- from https://docs.scipy.org/doc/scipy-1.2.0/reference/generated/scipy.misc.imresize.html
换一种写法,通过numpy来实现,import语句如下所示(当然,仍然需要依赖Pillow库,可以用语句pip install pillow
进行安装):
from PIL import Image
import numpy as np
imresize使用示例(被注释的第一行是基于scipy库的写法,第二行是基于numpy的写法):
# im = imresize(im, (h, int(w * aspect_ratio)), interp='bicubic')
im = np.array(Image.fromarray(im).resize((h, int(w * aspect_ratio))))
参考资料: