Source : Wiki
用 Matplotlib 繪製此照片之程式碼如下 :
import scipy.misc
import matplotlib.pyplot as plt
lena=scipy.misc.lena()
plt.gray()
plt.imshow(lena)
plt.show()
但是執行到 lena=scipy.misc.lena() 就出現錯誤訊息 :
>>> import scipy.misc
>>> import matplotlib.pyplot as plt
>>> lena=scipy.misc.lena()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'scipy.misc' has no attribute 'lena'
用 dir() 檢視 scipy.misc 成員, 真的沒有 lena :
>>> dir(scipy.misc)
['__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', 'absolute_import', 'ascent', 'central_diff_weights', 'derivative', 'division', 'doccer', 'electrocardiogram', 'face', 'print_function', 'test']
原因是 SciPy 從 1.0.0 版開始移除了 lena 圖片, 改成了上樓梯的圖 ascent, 參考 :
# python scipy找不到lena
的確, 我在 SciPy 0.14.0 版教學文件上還找得到 lena 圖的資料 :
# https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.misc.lena.html
# https://docs.scipy.org/doc/scipy-0.14.0/reference/misc.html
但在 1.0.0 版就沒有了, 取而代之的是 ascent :
# https://docs.scipy.org/doc/scipy-1.0.0/reference/misc.html
好吧, 那就用 ascent 來試試看吧!
>>> import scipy.misc
>>> import matplotlib.pyplot as plt
>>> ascent=scipy.misc.ascent()
>>> plt.gray()
>>> plt.imshow(ascent)
>>> plt.show()
結果如下 :
這 .... 比起 lena 圖真是遜色多了.
沒有留言:
張貼留言