Imagemagick的导入速度令人沮丧

问题描述 投票:1回答:1

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

import -window windowID png:-

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

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

是否有任何替代导入或可能是更快的另一种接近这种方式?

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

Link to full python script(第44行是屏幕截图发生的地方)

linux python-3.x performance imagemagick screenshot
1个回答
3
投票

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

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

import -window windowID rgb:

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

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

import -window windowID ppm:
© www.soinside.com 2019 - 2024. All rights reserved.