python使用cv2.imwrite如何避免内存泄露

最近使用python在做一个目标识别的项目,需要死循环载入图片,识别后再输出结果,如下:

while 1:
    frame = cv2.imread("pic.jpg")
    ...

但由于使用cv2.imread重复的载入图片,会看到内存在不断飙升,直到内存泄露为止。

主要原因是:无法跳出while 1死循环,导致每次重复创建的frame变量无法销毁,程序运行一段时间后,就会内存不足。

解决方法很简单:

frame  = ""
while 1:
    frame = cv2.imread("pic.jpg")
    ...

 只需要在while循环外创建一个frame全局变量,让每次cv2.imread读入的图片都存在全局变量中即可。

原文地址:https://www.cnblogs.com/codeit/p/14934750.html