当我尝试使用
将大小为(35887,48,48)的小数组形状调整为(35887,100,100)时,系统崩溃并重新启动arr = skimage.transform.resize(arr,(35887,100,100))
答案 0 :(得分:0)
此操作失败,因为您调整了3D数组的大小,而不是一堆2D数组的大小。 该库沿第一维进行插值。这意味着将混合单独的图像。
尝试在循环中分别调整每个图像的大小。
outarr = np.array([skimage.transform.resize(ent, (100,100)) for ent in arr])
但是,我强烈建议使用opencv,因为:
只需在调整大小并运行循环之前预先分配内存即可。
代码:
import cv2
outarr = np.empty((arr.shape[0], 100,100), dtype=arr.dtype) # create buffer
for src, dst in zip(arr, outarr):
cv2.resize(src, dsize=dst.shape, dst=dst)
它应在大约1秒钟内调整所有图像的大小。祝你好运!