首页 > 解决方案 > 将图像转换为 numpy 数组时如何调整图像大小

问题描述

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

标签: pythonnumpyimage-processingdata-sciencenumpy-ndarray

解决方案


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

import numpy as np
from PIL import Image

arr = np.load('img.npy')
img = Image.fromarray(arr)
img.resize(size=(100, 100))

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

还有scikit-image,但我怀疑它PIL在引擎盖下使用。它适用于 NumPy 数组:

import skimage.transform as st

st.resize(arr, (100, 100))

我猜另一个选择是OpenCV


推荐阅读