0

首先关闭代码:

for (int i = 0; i < 25; i++)
{
robot.delay(1000);// wait 1 second
Color pixel_4 = robot.getPixelColor(x-15, 30);
System.out.println(pixel_4.getRed() + " " + pixel_4.getGreen() + " " + pixel_4.getBlue());
}

这不是我使用的确切代码,但它会产生相同的情况:如果我在程序中运行此循环并且整个循环的屏幕完全相同,它偶尔会输出如下内容:

255 255 255

...(相同颜色)

...

...

...

...

...

...

...

124 142 012 <---- 这就是问题所在

255 255 255

据我所知,屏幕是静态的,但 robot.getPixelColor(x,y) 方法返回了一组错误的值。

有没有人对此有任何经验或直觉?我能做些什么来防止它发生吗?

谢谢

4

1 回答 1

1

出于显而易见的原因;你的逻辑有问题。这是一个想法:

假设您有一个宽度为 200 像素的屏幕,假设您的算法检查屏幕边界之外的像素的颜色(即 201, 0)。robot.getPixelColor 返回什么?它要么返回图像边界之外的颜色,要么返回某种无效结果。

考虑到这一点,请确保您的算法检查图像约束内的有效像素;这可能是您的结果模糊不清的原因。

希望这有助于或导致适当的解决方案

于 2011-01-02T03:06:24.093 回答