Imagemagick的导入速度令人沮丧

时间:2018-03-05 04:49:45

标签: linux python-3.x performance imagemagick screenshot

我正在编写一个小的python脚本来截取游戏窗口的截图(将在后台/最小化)并使用cv2执行一些简单的模板匹配和ocr。 我目前正在调用im的导入如下:

import -window windowID png:-

截取非活动窗口的屏幕截图。

然而,这需要近4秒,并且很容易成为我脚本中最慢的部分,为100倍。

是否有任何替代导入或者可能采用另一种更快的方法?

我已经尝试过graphicsmagick(结果比imagemagick慢)和xwd(即使指定了windowID也没有捕获未聚焦的窗口)

Link to full python script(第44行是截图拍摄的地方)

1 个答案:

答案 0 :(得分:3)

您正在ImageMagick中执行所有PNG编码和zlib压缩,然后在OpenCV中再次解压缩它。如果您发现两者之间更紧密地共享的格式,我想你会做得更好。

具体来说,ImageMagick可以直接为您提供RGB像素,然后您可以使用cvtColor()在OpenCV中轻松转换为BGR。

import -window windowID rgb:

您必须查询窗口尺寸才能获得宽度和高度。

或者,您可以使用PPM格式,OpenCV也可以在没有任何库的情况下读取,其中包含维度:

import -window windowID ppm: