【问题标题】:Python : What is the difference between matplotlib.image and scipy.misc?Python:matplotlib.image 和 scipy.misc 有什么区别?
【发布时间】:2016-04-09 10:32:40
【问题描述】:

在 Python 中的 Matplotlib 和 SciPy 图像处理工具中,有许多类似的函数,例如 imread。
这些库是共享通用功能还是使用相同的模块?
在处理图像以读取、保存等时,使用 Matplotlib 函数还是 SciPy 函数?

【问题讨论】:

    标签: python image numpy matplotlib scipy


    【解决方案1】:

    简短回答:它们都加载了numpy array。唯一的区别是用于加载它们的方法。我建议使用 scipy,甚至使用 scikits-image

    来自matplotlib's imread documentation

    返回值是一个 numpy.array。对于灰度图像,返回数组是 MxN。对于 RGB 图像,返回值为 MxNx3。对于 RGBA 图像,返回值为 MxNx4。

    来自scipy's imread documentation

    返回:
    读取:ndarray 从文件imfile中读取图像得到的数组。

    ndarray 引用 numpy.ndarray,因为 scipy 是建立在 numpy 之上的)。

    Scikits-image 支持 PIL 以外的其他插件,例如我们的 freeimage 或库 tifffile,甚至是 matplotlib 本身。查看scikits-image to load and save images 支持的所有插件/库。

    【讨论】:

    • scipy 也以与matplotlib 相同的格式返回数组。如果您遵循imread 的 scipy 源代码,它会调用一个名为fromimage 的函数,该函数表示:“不同的色带/通道存储在第三维中,因此灰度图像是 MxN,RGB-图像 MxNx3 和 RGBA 图像 MxNx4"
    • @tom 是的,这正是我所说的。它们都返回相同的numpy array。唯一的区别是他们用来加载它的插件。如果可用,Matplotlib 将使用 PIL,而 scipy 实际上使用 PIL。然后转换为numpy数组。
    • 是的,只是认为值得评论,因为您从文档中获得的 sn-ps 并没有明确表明您获得了 RGB(A) 图像的MxNx{3,4}
    猜你喜欢
    • 2018-08-28
    • 2010-10-02
    • 2011-12-12
    • 2010-09-16
    • 2012-03-14
    • 2012-02-06
    • 2011-02-25
    • 2011-11-22
    • 2015-03-26
    相关资源
    最近更新 更多