我們在使用scipy的時候有時候還需要依賴一些其他的第三方包。比如在SciPy使用misc功能時候,有些小伙伴會遇到SciPy找不到imsave的情況,這種情況就是缺少第三方包的情況,接下來看小編是如何解決的吧。
案例分析
在想把CIFAR-10 的16進制數(shù)據(jù)轉(zhuǎn)為圖像的時候需要用到imsave(),但是在import scipy.misc 之后顯示該庫內(nèi)沒有imsave()
后來發(fā)現(xiàn)還需要安裝 Pillow這個包
解決:
pip install Pillow
原因分析:
在安裝Pillow之前,通過dir(scipy.misc) 可以查看里面的包,然后發(fā)現(xiàn)找不到imsave()函數(shù)
安裝Pillow之后,再次查看就能發(fā)現(xiàn)多了很多函數(shù),其中包括imsave(), imread()
Pillow是python的一個十分強大的圖像處理庫,imsave之類的圖像處理函數(shù)應(yīng)該是屬于Pillow庫的
導(dǎo)入的時候需要輸入 import PIL,但是此時調(diào)用imsave是找不到的
這種安裝包還會在其他庫內(nèi)導(dǎo)入新的函數(shù)的行為是第一次發(fā)現(xiàn)。
補充:解決module scipy.misc has no attribute imsave報錯辦法
當(dāng)我們想要打開scipy.misc.imsave()包中的圖像,出現(xiàn)了這樣的報錯怎么做
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'
處理方法:
這里需要用到另外一種打開方法:
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的解決方案,希望能給大家一個參考,也希望大家多多支持W3Cschool。