Numpy 图像重采样,内存错误

Numpy 图像重采样,内存错误,numpy,out-of-memory,Numpy,Out Of Memory,我正在尝试的内容:我有一个23×23 numpy的数组,我已经将其转换为图像。之后,我尝试使用最近邻采样对其进行5000次重采样(新图像的大小为23*5000 x 23*5000)。但我得到了记忆错误 我的代码是- from PIL import Image import numpy as np img = Image.fromarray(aa) img.show() import scipy.ndimage #print 'Original array:' #print(aa) #p

我正在尝试的内容:我有一个23×23 numpy的数组,我已经将其转换为图像。之后,我尝试使用最近邻采样对其进行5000次重采样(新图像的大小为23*5000 x 23*5000)。但我得到了记忆错误

我的代码是-

from PIL import Image
import numpy as np

img = Image.fromarray(aa)

img.show()

import scipy.ndimage

#print 'Original array:'
#print(aa)

#print 'Resampled by a factor of 2 with nearest interpolation:'
pppp=scipy.ndimage.zoom(aa, 5000, order=0)

img1 = Image.fromarray(pppp)


img1.show()
其中aa是我的23乘23数组


我想要什么:有没有办法消除内存错误?或者有没有其他方法可以让我做我想做的事情

重新采样将更改存储新采样图像所需的阵列大小

假设您使用的是灰度图像(np.uint8),那么大小为(23*5000,23*5000)的图像大约需要>12GB的内存

除了购买更多内存之外,您没有什么可以做的,因为大多数图像大小调整器都假设,这是一个内存操作


(也许可以调整一些大小调整器以与numpy的memmap配合使用,但这需要修改,而且可能会非常慢)

为什么需要如此极端的重采样因子?最近邻法是你唯一想用的方法吗?不,我对这个要求不严格。实际上,我使用的是卫星图像,其中的数据以5000米的分辨率给出。但我想要一个1米的分辨率。