繁体   English   中英

如何获取图像的像素值并将其存储到数组中?

[英]How to get pixel values of an image and store it into an array?

我想尝试在图像中查找图像。 对于我的“查找”方法,我想拍摄一张图像,然后使用它来扫描并比较绝对差异之和与较大图像。

最小的SAD就是我要扫描的确切图像。 我在想将两个图像的每个像素值放入两个单独的数组中,并通过Math.abs(image1[i][j]-image2[i][j]); 我唯一的问题是我不知道如何将每个像素值放入数组中。

另外,如果我只想比较图片中的绿色。 我看到Pixel类有一个getGreen(); 方法。 如果我想找到绿色的SAD,可以选择Math.abs(image1.getGreen()-image2.getGreen()); 工作? 我计划在每个图像的每一列和每一行中运行2个嵌套循环,然后找到绿色值的SAD。

您可以像这样将图像的所有颜色转换为Color [] []

BufferedImage paintImage = null;
    try {
         paintImage = ImageIO.read(new File ("C://Users/promo.png"));
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    Color[][] cols = new Color[paintImage.getWidth()][paintImage.getHeight()];
    for(int z = 0;z < paintImage.getWidth();z++){
        for(int a = 0;a < paintImage.getHeight();a++){
            int color = paintImage.getRGB(z, a);

            int  red = (color & 0x00ff0000) >> 16;
            int  green = (color & 0x0000ff00) >> 8;
            int  blue = color & 0x000000ff;
            int alpha = (color>>24) & 0xff;
            Color col = new Color(red,green,blue,alpha);
            cols[z][a] = col;

        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM