【问题标题】:Fast Pixel Search in JavaJava中的快速像素搜索
【发布时间】:2013-11-10 08:55:38
【问题描述】:

我在 java 中遇到了关于像素搜索的问题。 目前,我的课程/程序正在逐个像素地搜索,这对我的目的来说很慢。 我不想让 Java 更快地搜索像素,所以我想到了问你们的想法。 我正在通过 RGB 颜色搜索像素。这是我的源代码:

    final int rot = 0;
    final int gruen = 0;
    final int blau = 0;
    int toleranz = 1;

    Color pixelFarbe;

    Dimension bildschirm = Toolkit.getDefaultToolkit().getScreenSize();


    Robot roboter = null;
    try {
        roboter = new Robot();
    } catch (AWTException e) {
        e.printStackTrace();
        OrbitRaider.log("Robot is not working.");
    }

    for(int x = 0; x <= bildschirm.getWidth(); x++)
    {
        for(int y = 0; y <= bildschirm.getHeight(); y++)
        {
            // Pixelfarbe bekommen
            pixelFarbe = roboter.getPixelColor(x, y);

            // Wenn Pixelfarbe gleich unserer Farbe
            if( (pixelFarbe.getRed() < (rot - toleranz)) || (pixelFarbe.getRed() > (rot + toleranz))
                && (pixelFarbe.getGreen() < (gruen - toleranz)) || (pixelFarbe.getGreen() > (gruen + toleranz)) 
                && (pixelFarbe.getBlue() < (blau - toleranz)) || (pixelFarbe.getBlue() > (blau + toleranz)) ){("Could not find Pixel Color");

            }

            else{
                System.out.println("Pixelcolor found at x: " + x + " y: " + y);
            }
        }
    }

【问题讨论】:

  • 您还没有公开 getPixelColor 函数的工作原理,这非常重要!如果每次调用 getPixelColor 时都调用本机 dll,那么结果会很慢。相反,您应该拍摄屏幕快照并检查存储在内存中的像素。如果这对您来说甚至是一个问题。您需要提供更多信息。
  • @Chill:是java.awt.Robot。是的,获得一个像素肯定会变慢。
  • 我没有意识到 jdk 有像素抓取功能。我只是根据其他语言的经验发言。 Ibalazscs 下面的回答正是我建议你做的。主要瓶颈实际上是获取初始像素信息,而不是扫描您拥有的信息。如果你批量购买,它会快得多。

标签: java performance search optimization pixel


【解决方案1】:

使用 Robot 类的createScreenCapture 方法创建屏幕截图可能要快得多,然后检查此 BufferedImage 的像素 - 而不是使用明显的 getRGB 方法(由于色彩空间,这也很慢每次调用时发生的转换),但要通过 BufferedImage 后面的 int 数组。

看到这个:Java - get pixel array from image

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    • 1970-01-01
    • 2011-05-11
    • 2018-10-10
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    相关资源
    最近更新 更多