在java中加速像素识别

在java中加速像素识别,java,awtrobot,Java,Awtrobot,我正在写一个程序,要求我从屏幕上刮取数据,我通过检查屏幕上的每个像素并保存颜色来完成这项工作,但这是一个非常昂贵的操作,需要花费很长时间 下面的代码就是我用来刮取数据的代码 try { Robot r = new Robot(); for( int a = 0; a < height; a++ ) { for ( int b = 0; b < width; b++ ) { Color

我正在写一个程序,要求我从屏幕上刮取数据,我通过检查屏幕上的每个像素并保存颜色来完成这项工作,但这是一个非常昂贵的操作,需要花费很长时间

下面的代码就是我用来刮取数据的代码

try
{
     Robot r = new Robot();
     for( int a = 0; a < height; a++ )
     {
          for ( int b = 0; b < width; b++ )
          {
               Color p = r.getPixelColor(a, b);
               int red = p.getRed();
               int blue = p.getBlue();
               int green = p.getGreen();

               screen[a][b][0] = red;
               screen[a][b][1] = blue;
               screen[a][b][2] = green;
           }
      }
}
catch( AWTException e ) {}
试试看
{
机器人r=新机器人();
对于(int a=0;a

是否有任何方法可以改进此功能,或者除了使用此类或方法之外,是否有其他替代方法使用
Robot.createScreenCapture()
在单个方法调用中创建特定区域的
BuffereImage


如果出于安全原因,这不起作用,则第二个选项是修改源,使其在
缓冲区图像中呈现UI,然后可以克隆该图像以对其进行分析(或者如果可以防止对其进行更改,则直接对其进行分析).

如果我将其分配给一个变量,我可以像在屏幕上显示一个像素一样对其进行迭代吗?还是我需要以不同的方式进行迭代?你的问题没有真正意义。你知道如何使用BuffereImage吗?如果没有,请阅读以下内容:在您的情况下,您可能希望将像素复制到
int
数组中,以便更快地访问,其中每个条目都是整个RGB颜色(而不是创建三个数组)。谢谢,这正是我要找的