如何在python中读取大块的大型图像?

如何在python中读取大块的大型图像?,python,image,image-processing,numpy,pytables,Python,Image,Image Processing,Numpy,Pytables,我试图计算两幅图像像素值的差异,但我遇到了内存问题,因为我的图像非常大。python中有没有一种方法可以让我一次读取10x10个图像块,而不是尝试读取整个图像?我希望通过读取小块图像来解决内存问题,将这些块分配给numpy数组,然后使用pytables保存这些numpy数组以供进一步处理。如有任何建议,将不胜感激 问候, 伯克如果您有时间对图像进行预处理,可以将其转换为位图文件(较大,不压缩),然后通过偏移量读取文件的特定部分,如下所述: 使用以下代码,可以在Python中完成从任何文件类型到

我试图计算两幅图像像素值的差异,但我遇到了内存问题,因为我的图像非常大。python中有没有一种方法可以让我一次读取10x10个图像块,而不是尝试读取整个图像?我希望通过读取小块图像来解决内存问题,将这些块分配给numpy数组,然后使用pytables保存这些numpy数组以供进一步处理。如有任何建议,将不胜感激

问候,


伯克

如果您有时间对图像进行预处理,可以将其转换为位图文件(较大,不压缩),然后通过偏移量读取文件的特定部分,如下所述:

使用以下代码,可以在Python中完成从任何文件类型到位图的转换:

from PIL import Image
file_in = "inputCompressedImage.png"

img = Image.open(file_in)

file_out = "largeOutputFile.bmp"

img.save(file_out)

如果您有时间对图像进行预处理,您可以将其转换为位图文件(较大,不压缩),然后通过偏移量读取文件的特定部分,如下所述:

使用以下代码,可以在Python中完成从任何文件类型到位图的转换:

from PIL import Image
file_in = "inputCompressedImage.png"

img = Image.open(file_in)

file_out = "largeOutputFile.bmp"

img.save(file_out)

您可以使用numpy.memmap,并让操作系统决定将图像文件的哪些部分分页到RAM中或从RAM中分页。如果使用64位Python,与可用RAM相比,虚拟内存空间是天文数字

您可以使用numpy.memmap,让操作系统决定将图像文件的哪些部分分页到RAM中或从RAM中分页。如果使用64位Python,与可用RAM相比,虚拟内存空间是天文数字

图像有多大?有多少RAM?图像高达10GB,我有6GB的RAM。我想避免将图像加载到RAM中。图像存储的格式是什么?另一个问题,当你说你想计算像素值的差异时,这是否意味着你想计算相同尺寸的两个图像的每两个像素之间的差异?Img1_像素(x,y)-Img2_像素(x,y)对于相同尺寸的两个图像的每个像素。图像有多大?有多少RAM?图像高达10GB,我有6GB的RAM。我想避免将图像加载到RAM中。图像存储的格式是什么?另一个问题,当你说你想计算像素值的差异时,这是否意味着你想计算相同尺寸的两个图像的每两个像素之间的差异?Img1_像素(x,y)-Img2_像素(x,y)对于相同尺寸的两个图像的每个像素。