0

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

    2023.08.13 | admin | 130次围观

    在想把CIFAR-10 的16进制数据转为图像的时候需要用到imsave()python安装后找不到,但是在import scipy.misc 之后显示该库内没有imsave()

    后来发现还需要安装 Pillow这个包

    解决:

    pip install Pillow

    原因分析:

    在安装Pillow之前python安装后找不到,通过dir(scipy.misc) 可以查看里面的包,然后发现找不到imsave()函数

    安装Pillow之后,再次查看就能发现多了很多函数,其中包括imsave(), imread()

    Pillow是python的一个十分强大的图像处理库,imsave之类的图像处理函数应该是属于Pillow库的

    导入的时候需要输入 import PIL,但是此时调用imsave是找不到的

    这种安装包还会在其他库内导入新的函数的行为是第一次发现。

    补充:解决module scipy.misc has no attribute imsave报错办法

    当我们想要打开scipy.misc.imsave()包中的图像,出现了这样的报错怎么做

    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 
        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()
    

    输出

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论