当图像转换为 numpy 数组时如何调整图像大小

au.*_*umn 3 python numpy image-processing data-science numpy-ndarray

考虑我们只有图像 as.npy 文件。是否可以在不将图像转换为图像的情况下调整图像大小(因为我正在寻找一种在运行代码时快速的方法)。有关更多信息,我询问了没有转换为图像的方式,我有图像,但我不想在代码中使用这些图像,因为我的数据集太大并且图像运行速度太慢,另一方面,我不确定哪个size 更适合我的 imeges,所以我正在寻找一种方法,首先将图像转换为 npy 并保存 .npy 文件,然后预处理 npy 文件,例如调整图像的尺寸。

kwi*_*nks 7

试试吧PIL,也许它对你来说已经足够快了。

import numpy as np
from PIL import Image

arr = np.load('img.npy')
img = Image.fromarray(arr)
img.resize(size=(100, 100))
Run Code Online (Sandbox Code Playgroud)

请注意,如果您想保留它,则必须计算纵横比。或者您可以使用Image.thumbnail(),它可以采用抗混叠滤波器。

还有scikit-image,但我怀疑它PIL在幕后使用。它适用于 NumPy 数组:

import skimage.transform as st

st.resize(arr, (100, 100))
Run Code Online (Sandbox Code Playgroud)

我猜另一个选项是OpenCV

  • 感谢您的回答,但我问了没有转换为图像的方法,我认为`Image.fromarray(arr)`将数组转换回图像并且也是灰度,我有图像但我不想在代码中使用这些图像,因为我的数据集太大,运行图像太慢,另一方面,我不确定哪种大小更适合我的图像,所以我正在寻找一种方法,首先将图像转换为 npy 并保存 .npy 文件,然后预处理 npy 文件,例如调整图像的尺寸。我不知道这可能或不可能。我将此评论添加到我的问题中,以便更多地解释其他人。 (2认同)