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