天天看點

遇到問題: Python報錯module 'scipy.misc' has no attribute 'imsave'

https://blog.csdn.net/u013318356/article/details/95340391

方法1 有的文章說 需要安裝 pillow  然後我pip install pillow 依然沒有用 還是報錯

方法2 有的文章說 需要安裝moviepy 以及pillow 然後我pip install moviepy 依然沒有用 還是報錯

測試驗證: 建立一個.py檔案:

import scipy.misc

print(dir(scipy.misc))

可以看到 如果顯示的這個路徑裡面你 沒有imread 或者imsave 一定依然在程式裡面會報錯

方法3 親試有效

如果不想改程式 ,建議pip uninstall scipy,

我嘗試了pip install scipy==1.2.0,
遇到問題: Python報錯module 'scipy.misc' has no attribute 'imsave'

但是有imread imsave,奇怪???

下圖是報錯結果,建議使用

imageio.imwrite

遇到問題: Python報錯module 'scipy.misc' has no attribute 'imsave'

解決方法:

1 嘗試使用imageio.write

2 嘗試安裝scipy1.0.0

我嘗試使用 imageio.write之後

遇到問題: Python報錯module 'scipy.misc' has no attribute 'imsave'
發現如下報錯:
遇到問題: Python報錯module 'scipy.misc' has no attribute 'imsave'

Lossy conversion from float32 to uint8. Range [0, 1].

Convert image to uint8 prior to saving to suppress this warning.

從float32到uint8的有損轉換,區間[0,1]。

在儲存之前将圖像轉換為uint8來抑制這個警告。

也就是說圖像有損,不清晰,确實是這樣,

難道是因為使用指令imageio.write的原因

遇到問題: Python報錯module 'scipy.misc' has no attribute 'imsave'

then,參考此文章:http://www.it1352.com/899106.html

下面參考了EGNet的寫法

res = res.sigmoid().data.cpu().numpy().squeeze()
# misc.imsave(save_path + name + '.png', res)
res = 255 * res
print('=>res2', res)
res = res.astype(np.uint8)
print('=>res3', res)
cv2.imwrite(save_path + name + '.png', res)
# imageio.imwrite(save_path + name + '.png', res)
           

方法4 (還未嘗試)我認為此方法等同于方法3

如果不想改程式 ,建議pip uninstall scipy,

然後到https://pypi.org/project/scipy/1.2.0/#files 下載下傳scipy1.2.0 手動安裝

自動安裝會自動安裝最新版 1.3.0的scipy,他 沒有imsave 沒有imread

重新安裝完了之後,問題解決 程式不報錯

遇到問題: Python報錯module 'scipy.misc' has no attribute 'imsave'