首页 > 解决方案 > 直接打开/加载图像为 numpy ndarray

问题描述

我曾经使用 scipy 将图像从文件直接加载到 ndarray 中。

from scipy import misc
img = misc.imread('./myimage.jpg')
type(img)
>>> numpy.ndarray

但现在它给了我一个DeprecationWarning文档说它将在 1.2.0 中删除。我应该改用 imageio.imread 。但:

import imageio
img = imageio.imread('./myimage.jpg')
type(img)
>>> imageio.core.util.Image

我可以通过这样做来转换它

img = numpy.array(img)

但这似乎很老套。有什么方法可以将图像直接加载到 numpy 数组中,就像我之前使用 scipy 所做的那样misc.imread(使用 OpenCV 除外)?

标签: pythonimagenumpyscipynumpy-ndarray

解决方案


的结果imageio.imread已经是一个 NumPy 数组;imageio.core.util.Image是一个主要存在的 ndarray 子类,因此该数组可以具有meta保存图像元数据的属性。

如果你想要一个确切类型的对象numpy.ndarray,你可以使用asarray

array = numpy.asarray(img)

与 不同numpy.array(img),这不会复制img的数据。


推荐阅读