以numpy数组的形式处理非常大的图像

2024-10-06 12:24:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在处理大于8gb的.svs格式的图像。使用openslide,我将它们读作1D numpy数组。现在为了将它们输入到一个算法中,我需要将它们重塑成图像形式,以处理像素位置相关的信息。 由于图像非常大,使用PIL将numpy数组转换为

image=np.load('test.npy') 
im=Image.fromarray(image)

给我一个错误size does not fit in int。我试图通过将dtypeuint8改为uint64来解决这个错误,但是我的python仍然崩溃,尽管我的工作站上有64GB RAM and 3 TB memory。在

然后我尝试使用memmap加载numpy数组:

^{pr2}$

现在上面的代码给了我一个.tif格式的图像。但是,我无法处理。我无法分析原因?当我试着读那张图片并打印它的形状时,我发现了这一点。在

AttributeError: 'NoneType' object has no attribute 'shape'

所以,这种方式对我来说也是失败的。然后,我尝试将numpy数组重塑为(4433164625,3)图像的形状,得到以下错误

ValueError: sequence too large; cannot be greater than 32

有谁能帮我处理这样的图像吗。我有这些图像在x,y,z像素位置的注释,要将这些注释作为基本事实进行处理,我需要将我的numpy数组转换为图像形式。在

任何帮助都会很好。在

编辑:我现在正在重塑纽比阵列。但是,仍然不知道如何使用numpy文件作为我的数据集输入而不是图像。在


Tags: 图像imagenumpy算法信息pil格式错误