2013-10-16 33 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