Python下的图像处理 - 无需将整个图像加载到内存中

3

我正在寻找一个Python库,可以让我从TIF图像中检索图像数据,而不必将整个图像加载到内存中。

我尝试使用numpy.memmap,但是我在文件中定位图像数据时遇到了困难。任何建议都将有所帮助。谢谢。


图片有多大? - usethedeathstar
尝试使用 pyvips - 它非常快速且对内存消耗很小。 - Mark Setchell
1个回答

0

我有两个建议给你:

  1. 分块读取图像数据到 Python 中:

    with open('path/to/image-data.tif', 'rb') as tif:
        while True:
            chunk = tif.read(4096)
            if not chunk:
                break
    
  2. 考虑使用 NumExpr 进行处理:https://github.com/pydata/numexpr

在内部,NumExpr采用了自己的向量化虚拟机,该虚拟机是围绕分块读取策略设计的,以便有效地在内存中操作最佳大小的数据块。如果适当调整,它可以轻松击败天真的NumPy操作。

希望这有所帮助,祝好运


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接