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读入的图片都存在全局变量中即可。