gpt4 book ai didi

java - 比较 Java 中 2 个图像的 RGB

转载 作者:行者123 更新时间:2023-12-04 05:29:52 25 4
gpt4 key购买 nike

我正在用 Java 编写照片马赛克。为此,我必须计算和比较 2 张图像的 RGB,并用最合适的平铺图像替换目标图像。我的意思是,如果我们没有找到精确的 RGB 匹配,就会出现错误 d被允许。

我正在使用以下代码来计算 RGB:

protected static int calcRGBForEachFile(String filePath) throws IOException {

int RGBTotal = 0;

try{
BufferedImage tile = ImageIO.read(new File(filePath));
tileWidth = tile.getWidth();
tileHeight = tile.getHeight();

for(int i=0; i<tileWidth; i++){
for(int j=0; j<tileHeight; j++){
RGBTotal = getPixelData(tile.getRGB(i,j));
}
}
}
catch(IOException e){
System.out.println(e);
}
return RGBTotal;
}

protected static void getPixelData(int rgb) {
int red = (rgb >> 16) & 0xff;
int green = (rgb >> 8) & 0xff;
int blue = (rgb) & 0xff;

}

它的作用是从给定的路径中获取图像,计算其 RGB 并将其存储在 HashMap 中。 .

有没有更好的方法来计算 RGB 并将它们与 2 个图像进行比较以获得更好的结果?

编辑:我根据一些评论编辑了我的问题。

最佳答案

根据人类感知(大致)的差异来比较图像的最佳方法之一是 SSIM .

您还可以尝试比较每个像素的 R、G 和 B 值,并稍微努力一点,根据人眼敏感度对每种颜色进行加权(例如,参见 Von Kries's method)。如果图像不是非常非常接近且大小相同,这将不会像您希望的那样工作。

我写了一个保存格式推荐程序(PNG vs JPG),ImageGuide ,其(开放)源代码包含一个简单的图像比较算法,可用于其目的。它可能会帮助您入门。

关于java - 比较 Java 中 2 个图像的 RGB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12773925/

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