首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用OpenCV实时处理像素

用OpenCV实时处理像素
EN

Stack Overflow用户
提问于 2017-12-10 15:16:31
回答 2查看 1.2K关注 0票数 0

我刚开始用Python学习OpenCV,并试图构建我的第一个游戏机器人。我的想法是:逐帧捕捉游戏窗口,分析特定位置的像素,如果这些像素的颜色发生了变化,然后按下键进行一些自动操作。

这个游戏需要快速的反应,所以FPS是非常重要的,我已经尝试了mss和PIL,但是这两种方法中的fps是不够的(30+与mss和10+与PIL的ImageGrab),所以我想知道是否有更好的方法来实时处理像素。谢谢!

EN

回答 2

Stack Overflow用户

发布于 2017-12-10 16:05:04

我经历过同样的问题,因为我想做同样的事情。主要的问题是,您正在使用CPU来执行所有的操作,而且您并没有使用它的很多功能。

您可以优化您的程序或使用更多的权力。试试这个:

  • 阅读与python一起使用GPU (例如CUDA)
  • 尝试对较少数据执行OpenCV操作,例如将RGB转换为灰度,降低ROI

https://www.youtube.com/watch?v=ks4MPfMq8aQ&list=PLQVvvaa0QuDeETZEOy4VdocT7TOjfSA8a

OpenCV有GPU模块,但只适用于C++。

这不是很多信息,但我希望它能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2017-12-10 18:06:40

想继续雅库布的伟大回答:

在某些情况下,使用C++或其他东西可能是个好主意。

我创建了一个带有opencv、pil、pyautogui和numpy以及其他几个模块的csgo,观看哨兵关于这个主题的视频可能会给你一些想法(上面的链接)。

可能会有GPU cv2的自定义模块。

小贴士:

1)图像抓取分辨率较低。

2)在imagegrab.grab bbox中,您可以给出发生抓取的坐标,而不是全屏。

3)灰度是0-255,所以它会加速进程,如果你知道反应中的颜色是什么,那就把它们传递给灰度,这样你就知道在哪种颜色中反应。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47740206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档