gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 06:25:02 27 4
gpt4 key购买 nike

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

最小的 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;

}
}

关于java - 如何获取图像的像素值并将其存储到数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26898923/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com