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

Python屏幕特定颜色检测脚本失效,请求技术协助

问题排查与修复

你的脚本无法识别目标的核心问题是逻辑错误和匹配方式不合理,具体问题和修复方案如下:

存在的问题

  • 颜色遍历逻辑混乱:原代码的while循环会在第一个像素遍历完所有颜色范围后,将var设为False,导致后续所有像素都不再进行颜色检查。
  • 精确匹配不适用渐变场景:3D物体的浅紫色是渐变范围,用color == (r,g,b)的精确匹配很难命中实际像素(屏幕像素的RGB值很少会和你逐个递增的数值完全重合)。
  • 变量初始化位置错误:r、g、b应该在每个像素检查前重置初始值,而不是只在y循环初始化一次。

修复后的代码

我们直接对每个像素的RGB值做范围判断,既高效又能覆盖渐变颜色:

from PIL import ImageGrab

# 定义浅紫色的RGB范围
R_MIN, R_MAX = 230, 260
G_MIN, G_MAX = 0, 2
B_MIN, B_MAX = 200, 220

screen = ImageGrab.grab()
px = screen.load()
width, height = screen.size

found = False
for y in range(height):
    for x in range(width):
        r, g, b = px[x, y]
        # 检查当前像素是否在目标颜色范围内
        if (R_MIN <= r <= R_MAX) and (G_MIN <= g <= G_MAX) and (B_MIN <= b <= B_MAX):
            print(f"Found at ({x}, {y})")
            found = True
            # 找到后可以直接退出循环,不需要继续检查
            break
    if found:
        break

print("Done" if found else "Not found")

额外优化建议

  • 可以降低遍历步长(比如range(0, height, 2))来提升检测速度,牺牲一点精度换效率。
  • 如果目标物体有特定形状,可以在颜色匹配后加入形状判断,避免误识别孤立像素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 03:35:22