使用MSS截取许多屏幕截图时,内存会迅速填满并导致python崩溃

时间:2019-02-16 03:48:05

标签: python memory screenshot python-mss

这是我的代码:

import time
import cv2
import mss
import numpy as np

Frame = [0, 0, 1920, 1080]

def GetFrame():
    monitor = {"top": Frame[0], "left": Frame[1], "width": Frame[2], "height": Frame[3]}
    sct_img = mss.mss().grab(monitor)
    return np.asarray(sct_img)



while (True):
    inimg = GetFrame()
    cv2.imshow("WHY IS MEMORY SO HIGH???????", inimg)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cv2.destroyAllWindows() 

运行此命令时,它不会引发任何错误,但是在任务管理器中查找时,我的内存很快就装满了(大约200次迭代后),最终使我的桌面崩溃了,然后是python崩溃了。我调查了garbage collection,没有运气。

Python version 3.7.0
MSS version 4.0.1

1 个答案:

答案 0 :(得分:0)

嗯,我自己修复了它,我不知道为什么为什么有效,但确实。这是我的高智商解决方案:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
<input type="text" validationType="notEmpty" required="required" value="" placeholder="firstName" />
<input type="button" class="validate" value="button 1" />

<input type="button" class="submit disable" value="button 2" />

</form>

如果有人想评论并解释为什么对我有用,那么我会很感激:)