如题,调试程序过程报错:
module 'scipy.misc' has no attribute 'imresize'
module 'scipy.misc' has no attribute 'imsave'
module 'scipy.misc' has no attribute 'imread'
使用pip list及conda list发现环境内scipy的版本为v1.1.0。然后通过scipy官方文档了解到im***系列方法在v1.0.0后已被scipy弃用。为保证依赖库版本不变,避免影响其他代码的正常运行,我们使用PIL.Image及imageio等对imresize()/imsave()/imread()等几个常用方法进行有效替换,示例代码如下:
imresize
from scipy import misc
I = np.asarray(Image.open(test_directory_dslr + str(i) + '.jpg')) # original
I = misc.imresize(I, DSLR_SCALE / 2, interp='bicubic') # original
from PIL import Image
I = Image.open(test_directory_dslr + str(i) + '.jpg')
size = tuple((np.array(I.size) * DSLR_SCALE / 2).astype(int))
I = np.array(I.resize(size, resample=Image.BICUBIC)) # 注意此处interp='bicubic'到resample=Image.BICUBIC的替换
imsave
from scipy import misc
misc.imsave("img.jpg", img_data) # original
import imageio
imageio.imwrite("img.jpg", img_data)
imread
>>> import imageio
>>> img = imageio.imread('img.jpg')
>>> img.dtype
dtype('uint8')
>>> imageio.imwrite('img_saved.jpg', img)
>>> img_read = imageio.imread('img_saved.jpg')
>>> img_read.dtype
dtype('uint8')
参考文献
[1] https://docs.scipy.org/doc/scipy-1.2.0/reference/generated/scipy.misc.imsave.html#scipy.misc.imsave
[2] https://stackoverflow.com/questions/57414277/alternative-to-scipy-misc-imresize