Python 在 MacOS 屏幕上检测颜色

Python detecting color on MacOS screen

提问人:Coding_Guy 提问时间:10/25/2023 更新时间:10/25/2023 访问量:40

问:

我正在尝试制作一个可以用作反应时间机器人的 python 脚本。就像我想尽快在屏幕上去除像素的颜色,然后单击它。但是由于我在 Mac 上,所以我不能使用 Windows 软件包。我试图做这样的事情:

import os

pixel = (0, 0) #the coordinates of the pixel I am observing
green = (0, 0, 0) #the rgb values of green

while True:
    if os.get_pixel_rgb_color(pixel) == green:
        os.click(pixel)

但是由于像 pyautogui 这样的软件包(据我所知)需要截取屏幕截图才能获得 rgb 值。但是这些东西需要更多的时间,而且由于我正在尝试制作一个反应时间机器人,所以它太慢了。

Python macOS 颜色 检测

评论

0赞 Mark Setchell 10/25/2023
我无法从您的问题中判断 a) 您是否要检测给定像素(例如 (10,10) 处的像素是否为绿色,或者 b) 您想检测屏幕上任何地方是否有绿色像素。我也无法判断你是否要点击绿色像素(如果它出现),或者你是否真的想点击其他地方的按钮。
0赞 Mark Setchell 10/25/2023
我还认为很难看到特定的像素,所以你真的在寻找一个绿色区域而不是一个像素吗?
0赞 Coding_Guy 10/30/2023
我想检测屏幕上单个像素的颜色。如果真的更容易,检测一个小区域也是可以的。
0赞 Mark Setchell 10/31/2023
据我所知,在 Mac 上检查屏幕的最快方法是使用 ,请参阅此处的答案 stackoverflow.com/a/59089102/2836621 以及此处的类似想法,但使用 Python 中的子进程来读取屏幕 stackoverflow.com/a/58476274/2836621ffmpegffmpeg
0赞 Mark Setchell 10/31/2023
我会尝试在其中插入一个“裁剪”过滤器,以将流入 Python 进程的数据量减少到最低限度,而不是不必要地将整个屏幕从 Python 传递到 Python,然后扔掉 99% 的数据。ffmpegffmpegffmpeg

答: 暂无答案