gpt4 book ai didi

python - 如何使用 Python 将非常大的图像(tif)文件转换为数组

转载 作者:行者123 更新时间:2023-11-30 22:51:46 31 4
gpt4 key购买 nike

我有一个大小约为 2GB 的 tif 文件。我想将其转换为 numpy 数组以进行进一步处理。我尝试使用 PIL.Image.open("FileName") 打开图像,然后将其添加到 numpy 数组中。但我收到错误:

IOError:无法识别图像文件

文件格式正确,位置指定准确。您能否提供一些有关为什么会发生这种情况的信息?您认为这与文件大小有关吗?

最佳答案

vips对大文件有很好的支持,并且 convenient high-level Python binding ,你可以尝试一下。

您可以像这样将图像加载到内存中:

$ python3
Python 3.6.7 (default, Oct 22 2018, 11:32:17)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyvips
>>> im = pyvips.Image.new_from_file("huge.tif")
>>> im.width
29566
>>> im.height
14321
>>> y = im.write_to_memory()
>>> type(y)
<class '_cffi_backend.buffer'>
>>> len(y)
1270244058

然后以通常的方式从该对象创建一个 numpy 数组。有一个chapter in the docs going into more detail on how to pass images back and forth between numpy, PIL and libvips .

您计划进行什么样的进一步处理?您也许只需使用 VIP 即可完成您需要的操作。会快很多。

关于python - 如何使用 Python 将非常大的图像(tif)文件转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38907079/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com