有谁知道如何使用 python 打开大型图像文件? 我尝试使用 ipython 通过 Windows 命令提示符打开图像文件(大约 2 GB),但每次将图像值更改为数组后它都会崩溃。
我的笔记本电脑是 window7-64bit,配备 4GB 内存和 Intel(R) Core(TM) i7-2860 QM CPU。
错误信息是:python.exe has stopped working 一个问题导致程序停止正常工作。 Windows 将关闭程序并在有可用解决方案时通知您
这是我的代码。
import Image
import numpy as num
im=Image.open('myimage.tif')
imarray=num.array(im)
最佳答案
你有多少内存?您需要 2GB 以上的 RAM 来存储 2-gig 图像。我不知道 Image
在存储图像方面的效率如何,但是字节列表为列表中的每个元素使用 四个 字节的空间,所以你会燃烧更多超过 8GB 的(虚拟)内存……还有很多耐心。 编辑:因为您只有 4(或 3)GB 可以玩,这几乎肯定是您的问题。
但是为什么要尝试将其转换为数值数组?使用 Image.open
返回的 im
对象的方法,如 PIL Tutorial .
我不知道你在对图像做什么,但也许你可以在不读取内存中的整个图像的情况下完成它,或者至少不将整个对象转换为 numpy
数组.如果可能,一点一点地阅读它以避免炸毁你的机器:阅读 python 生成器,并查看 Image.getdata()
方法,它一次返回你的图像一个像素值。
关于python - 在python中将大图像文件读取为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11585699/