You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用pyautogui检测特定颜色?代码误判问题求助

解决pyautogui像素颜色检测逻辑错误的问题

问题根源分析

  • 比较语句未做条件判断:你当前代码仅执行了pyautogui.pixel(1400,545)[1] == 213的比较运算,但没有用if语句判断结果。无论颜色是否匹配,代码都会直接执行后续的print("I can see it!"),这就是“目标颜色不存在仍判定存在”的核心原因。
  • 异常类型错误:ImageNotFoundException是pyautogui图像定位类函数(如locateOnScreen)抛出的异常,pixel方法不会触发该异常。只有当传入坐标超出屏幕范围时,pixel才会抛出OutOfBoundsException,因此你的except块永远不会被执行。

修正后的代码

import pyautogui
import time

while True:
    # 获取指定坐标像素的G通道颜色值
    g_channel_value = pyautogui.pixel(1400, 545)[1]
    if g_channel_value == 213:
        print("I can see it!")
        time.sleep(10)
    else:
        print("No")
    time.sleep(5)

修改说明

  • 移除重复导入的from pyautogui import *,仅保留import pyautogui,避免命名冲突。
  • 将像素颜色比较结果放入if条件判断中,只有当G通道值匹配213时才输出匹配提示,否则输出未匹配提示。
  • 调整sleep的位置,确保每次检测间隔5秒,匹配到目标颜色后等待10秒再进入下一轮检测。
  • 移除无效的try-except块,若需处理坐标超出屏幕的情况,可添加对pyautogui.OutOfBoundsException的捕获。

内容的提问来源于stack exchange,提问作者mmewtwosaysbye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 14:52:03