现在,我需要一个非常快速的截屏工具,将截图提供给CNN,根据屏幕截图更新鼠标移动。我希望模拟this paper中呈现的相同类型的行为,并且类似地执行图6中的步骤(没有极化转换)。由于需要非常快速的输入,我已经搜索了一下并且能够稍微修改这个脚本from here输出10fps
from PIL import ImageGrab
from datetime import datetime
while True:
im = ImageGrab.grab([320, 180, 1600, 900])
dt = datetime.now()
fname = "pic_{}.{}.png".format(dt.strftime("%H%M_%S"), dt.microsecond // 100000)
im.save(fname, 'png')
我能期待更快吗?如果可以的话,我可以使用不同的程序。
答案 0 :(得分:2)
写入磁盘非常慢,并且可能是使循环花费这么长时间的重要部分。尝试评论im.save()
行并查看可捕获的屏幕截图数量(添加counter
变量或类似内容以计算捕获的屏幕截图数量。)
假设磁盘I / O是瓶颈,您需要将这两项任务分开。有一个循环只捕获屏幕截图并将它们存储在内存中(例如,以时间戳作为键的字典),然后在一个单独的线程中拉出字典中的元素并将它们写入磁盘。
如果您之前没有做过多少工作,请参阅this question以获取有关Python中线程的指示。