我正在从http://oceancolor.gsfc.nasa.gov/DOCS/DistFromCoast/加载tiff文件
from PIL import Image
im = Image.open('GMT_intermediate_coast_distance_01d.tif')
数据很大(im.size=(36000, 18000)
1.3GB),常规转换不起作用;即,imarray.shape
返回()
import numpy as np
imarray=np.zeros(im.size)
imarray=np.array(im)
如何将此tiff文件转换为numpy.array
?
可能你没有太多的内存用于这个图像。你需要至少一些超过1.3GB的可用内存。
我不知道你在用图像做什么,你把整个图像都读入了你的记忆,但我建议你一点一点地读,如果可能的话,避免炸毁你的电脑。 您可以使用
Image.getdata()
,它每次返回一个像素。也请阅读此链接上有关
Image.open
的更多信息:http://www.pythonware.com/library/pil/handbook/
到目前为止,我已经测试了许多替代方案,但只有gdal可以始终工作,即使是使用16位的大图像。
您可以使用以下内容打开图像:
我有一个介于1到3 GB之间的巨大tif文件,在手动将Image.py源代码中MAX_Image_PIXELS的值更改为任意大数值后,终于用Image.open()打开了它们:
相关问题 更多 >
编程相关推荐