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

Java如何实现屏幕指定4×4区域内特定颜色/RGB值检测?

实现方案

你只需要在单像素检测的基础上,增加指定矩形区域的像素遍历逻辑即可,还可以通过步长采样优化检测速度,避免全像素遍历耗时过高。

步骤说明

  • 先定义待检测区域的参数:区域左上角坐标startX、startY,区域宽度areaWidth、区域高度areaHeight,可根据你实际的屏幕顶部中间区域尺寸调整
  • 可配置采样步长:如果待检测的圆形尺寸较大,不需要逐像素检测,设置步长为2~5即可大幅提升检测效率,不会漏检
  • 遍历区域内像素时只要检测到符合阈值的红色像素,立刻终止遍历并打印提示,减少不必要的性能消耗

完整可运行代码

import java.awt.AWTException;
import java.awt.Color;
import java.awt.Robot;

public class AreaColorDetector {
    public static void main(String[] args) throws AWTException {
        Robot robot = new Robot();
        // 待检测区域参数,示例为1920*1080屏幕顶部中间600*100的矩形区域,可自行修改
        int startX = 660;
        int startY = 0;
        int areaWidth = 600;
        int areaHeight = 100;
        // 采样步长,数值越大检测越快,圆形越小步长要越小
        int step = 2;

        while (true) { // 循环检测,不需要持续检测可以去掉循环
            boolean foundRed = false;
            // 遍历检测区域内的像素
            for (int x = startX; x < startX + areaWidth; x += step) {
                for (int y = startY; y < startY + areaHeight; y += step) {
                    Color color = robot.getPixelColor(x, y);
                    int red = color.getRed();
                    int green = color.getGreen();
                    int blue = color.getBlue();
                    // 你的红色检测阈值
                    if (red > 230 && green < 100 && blue < 100) {
                        foundRed = true;
                        break;
                    }
                }
                if (foundRed) break;
            }
            if (foundRed) {
                System.out.println("Found red color!");
                // 检测到后可以加延迟,避免重复打印,不需要可以删除
                robot.delay(1000);
            }
            // 每次检测的间隔,根据响应速度需求调整,单位毫秒
            robot.delay(50);
        }
    }
}

注意事项

  • 如果检测区域很大,可以把步长调大,避免检测延迟过高
  • 红色阈值可以根据你实际的颜色深浅调整,避免误判或漏判
  • 代码默认开启循环持续检测,不需要的话删除外层while循环即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:36:03