如何快速获得图像matriz? JAVA

时间:2015-11-07 18:57:48

标签: java image image-processing matrix rgb

我试图以快速的方式获得图像matriz(像素配置)......在JAVA中

我可以获得matriz但是依赖于图片的分辨率,这需要花费很多时间,所以如果有人知道如何快速获得它,请告诉我。

        int a;
        int r ; 
        int g ; 
        int b ;

            for(int y = 0; y < bufImage2.getHeight(); y++) {
                for(int x = 0 ; x < bufImage2.getWidth(); x++){
                    color = new Color(bufImage2.getRGB(x, y));
                    a = color.getAlpha();
                    r = color.getRed(); 
                    g = color.getGreen(); 
                    b = color.getBlue(); 
                    System.out.print(r+"."+g+"."+b+":");
                    }

&#34; for&#34; for&#34;我用来获取RGB值。

如果有图书馆或其他什么要做,请更快告诉我。

感谢。

1 个答案:

答案 0 :(得分:1)

基于类似的问题here,这里是我找到的,BufferedImage有自己的getRGB函数,它只需要处理以获取任何点的值(pixX,pixY)< / p>

        int w = image.getWidth();
        int h = image.getHeight();

        int[] dataBuffInt = image.getRGB(0, 0, w, h, null, 0, w); 

        int pixX = 25;
        int pixY = 50;

        Color c = new Color(dataBuffInt[pixX+pixY*w]);

        System.out.println(c.getRed());   // = (dataBuffInt[100] >> 16) & 0xFF
        System.out.println(c.getGreen()); // = (dataBuffInt[100] >> 8)  & 0xFF
        System.out.println(c.getBlue());  // = (dataBuffInt[100] >> 0)  & 0xFF
        System.out.println(c.getAlpha()); // = (dataBuffInt[100] >> 24) & 0xFF