python - 直接打开/加载图像为 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 除外)?
解决方案
的结果imageio.imread
已经是一个 NumPy 数组;imageio.core.util.Image
是一个主要存在的 ndarray 子类,因此该数组可以具有meta
保存图像元数据的属性。
如果你想要一个确切类型的对象numpy.ndarray
,你可以使用asarray
:
array = numpy.asarray(img)
与 不同numpy.array(img)
,这不会复制img
的数据。
推荐阅读
- linux - ioctl check state of shift 返回错误 无效参数
- makefile - 如何在某些警告上失败,但在其他警告上失败
- mysql - 如何将 MySQL 数据库模式分别升级到 sprint 版本?
- python - 如何根据每个分区重新索引数据帧
- javascript - 如何搜索具有多个值的单个单元格
- java - 如何解决“main java.awt.image.RasterFormatException: (x + width) is outside of Raster”和其他冲突?
- java - 比较字符串然后评分比较一次
- json - DialogFlow 实现
- angular - 如何从表单中获取 formControlNames?
- node.js - Apollo 查询从缓存中获取了错误的数据