skimage.transform.resize导致系统崩溃

时间:2019-07-13 18:20:53

标签: python numpy deep-learning scikit-image

当我尝试使用

将大小为(35887,48,48)的小数组形状调整为(35887,100,100)时,系统崩溃并重新启动
arr = skimage.transform.resize(arr,(35887,100,100))

1 个答案:

答案 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秒钟内调整所有图像的大小。祝你好运!