2013-10-16 27 views
0

我正在写一个程序,处理几个16位TIFF图像,消耗大量的RAM。Python和内存消耗打开TIFF图像时

如果我打开图片是这样的:

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

是否每个图像阵列去记忆,或者当我把它分配给新的价值是否得到删除吗? 如果它没有被删除,在打开新的之前如何删除它?

谢谢!

回答

3

对于每次迭代,img被重新分配,所以旧的帧将被垃圾回收器自动删除。

+1

只是确保你没有任何其他引用它漂浮。 – tacaswell

0

如果由于某种原因解释是不是垃圾收集数据,你可以强制其手这样的:

import gc 
gc.collect() 

只有做到这一点,如果你知道有内存泄漏,但是,由于运行它(特别是循环它)可以减慢程序的运行速度,通常最好将内存管理留给解释器。

+0

谢谢,我在循环之后做! –

+0

np!我很好奇听到这种情况是否真的减少了内存使用 – Meridius