【发布时间】:2016-04-09 10:32:40
【问题描述】:
在 Python 中的 Matplotlib 和 SciPy 图像处理工具中,有许多类似的函数,例如 imread。
这些库是共享通用功能还是使用相同的模块?
在处理图像以读取、保存等时,使用 Matplotlib 函数还是 SciPy 函数?
【问题讨论】:
标签: python image numpy matplotlib scipy
在 Python 中的 Matplotlib 和 SciPy 图像处理工具中,有许多类似的函数,例如 imread。
这些库是共享通用功能还是使用相同的模块?
在处理图像以读取、保存等时,使用 Matplotlib 函数还是 SciPy 函数?
【问题讨论】:
标签: python image numpy matplotlib scipy
简短回答:它们都加载了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 支持的所有插件/库。
【讨论】:
numpy array。唯一的区别是他们用来加载它的插件。如果可用,Matplotlib 将使用 PIL,而 scipy 实际上使用 PIL。然后转换为numpy数组。
MxNx{3,4}