App下載

import scipy.misc 后找不到 imsave的解決方案

猿友 2021-07-30 11:38:41 瀏覽數(shù) (4034)
反饋

我們?cè)谑褂胹cipy的時(shí)候有時(shí)候還需要依賴一些其他的第三方包。比如在SciPy使用misc功能時(shí)候,有些小伙伴會(huì)遇到SciPy找不到imsave的情況,這種情況就是缺少第三方包的情況,接下來(lái)看小編是如何解決的吧。

案例分析

在想把CIFAR-10 的16進(jìn)制數(shù)據(jù)轉(zhuǎn)為圖像的時(shí)候需要用到imsave(),但是在import scipy.misc 之后顯示該庫(kù)內(nèi)沒(méi)有imsave()

后來(lái)發(fā)現(xiàn)還需要安裝 Pillow這個(gè)包

解決:

pip install Pillow

原因分析:

在安裝Pillow之前,通過(guò)dir(scipy.misc) 可以查看里面的包,然后發(fā)現(xiàn)找不到imsave()函數(shù)

安裝Pillow之后,再次查看就能發(fā)現(xiàn)多了很多函數(shù),其中包括imsave(), imread()

Pillow是python的一個(gè)十分強(qiáng)大的圖像處理庫(kù),imsave之類的圖像處理函數(shù)應(yīng)該是屬于Pillow庫(kù)的

導(dǎo)入的時(shí)候需要輸入 import PIL,但是此時(shí)調(diào)用imsave是找不到的

這種安裝包還會(huì)在其他庫(kù)內(nèi)導(dǎo)入新的函數(shù)的行為是第一次發(fā)現(xiàn)。

補(bǔ)充:解決module scipy.misc has no attribute imsave報(bào)錯(cuò)辦法

當(dāng)我們想要打開(kāi)scipy.misc.imsave()包中的圖像,出現(xiàn)了這樣的報(bào)錯(cuò)怎么做

from scipy import misc
import matplotlib.pyplot as plt
f = misc.face()
misc.imsave('face.png', f) # uses the Image module (PIL)
plt.imshow(f)
plt.show()
Traceback (most recent call last):
  File "D:/pycharm/pycharm_project/Numpy Matplotlib scipy/scipy圖像處理.py", line 4, in <module>
    misc.imsave('face.png', f) # uses the Image module (PIL)
AttributeError: module 'scipy.misc' has no attribute 'imsave'

處理方法:

這里需要用到另外一種打開(kāi)方法:

import imageio
imageio.imsave()
# 例
from scipy import misc
import imageio
import matplotlib.pyplot as plt
f = misc.face()
imageio.imsave('face.png', f)
plt.imshow(f)
plt.show()

輸出

輸出結(jié)果

以上就是scipy找不到imsave的解決方案,希望能給大家一個(gè)參考,也希望大家多多支持W3Cschool。


0 人點(diǎn)贊