打开TIFF图像时的Python和内存消耗

时间:2013-10-16 21:31:33

标签: python opencv tiff

我正在编写一个程序来处理几个消耗大量RAM的16位TIFF图像。

如果我打开这样的图像:

import cv2
for i in range(1000):
    img = cv2.imread(file[i])

每个图像阵列都会进入内存,还是在我将其分配给新值时会被删除? 如果没有删除,我怎么能在打开新的之前将其删除?

谢谢!

2 个答案:

答案 0 :(得分:3)

对于每次迭代,img都会被重新分配,因此垃圾收集器会自动删除旧帧。

答案 1 :(得分:1)

如果由于某种原因,解释器不是垃圾收集数据,你可以用这个来强行:

import gc
gc.collect()

只有当你知道存在内存泄漏时才这样做,但是,运行它(尤其是循环它!)会降低你的程序速度,通常最好将内存管理留给解释器。