我們?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()
輸出
以上就是scipy找不到imsave的解決方案,希望能給大家一個(gè)參考,也希望大家多多支持W3Cschool。