【发布时间】:2020-11-01 04:08:45
【问题描述】:
我要做的是在 PC 屏幕上设置一个矩形 (Windows 10)。每 5-10 秒,获取该矩形的平均颜色。
示例:屏幕左下角的 50x50 矩形 > 获取平均颜色。如果发红,请执行此操作。如果偏蓝,就这样做。重复。
我的想法是我可以获取屏幕截图(可能是 Pyautogui),保存图像,然后裁剪所需的矩形(OpenCV),再次保存图像并分析它(OpenCV/Numpy)。
但是,我认为这会占用大量 CPU。如果我想要轻量级和快速的东西,我可以从哪里开始?您会推荐哪些库?
【问题讨论】:
-
背景颜色或图像是什么?除了矩形之外,它是全黑的吗?在 Python Opencv 中获得屏幕截图后,您无需将数据保存到磁盘。您可以在不保存到磁盘的情况下对其进行分析。裁剪矩形并减少颜色数量,然后获取直方图并找到最常见的颜色。
-
一种简单的方法是获取矩形像素,然后使用 np.mean() 或 cv2.mean() 来获取平均颜色。如果背景是黑色的,可以使用 np.nonzero() 查找矩形中的像素,然后从 cv2.mean 或 np.mean 中获取平均值。
标签: python opencv screenshot