gpt4 book ai didi

java - 用 Java 修改并比较 2 个图像

转载 作者:行者123 更新时间:2023-12-01 11:40:59 25 4
gpt4 key购买 nike

我有一项任务需要验证图像。我有两组文件夹,一组是实际的,另一组包含预期的图像。这些图片属于某些品牌/公司。

经过初步调查,我发现每个品牌的图片尺寸不同,但格式相同,即 png

到目前为止我所做的:- 在谷歌搜索后,我发现了下面的代码,它比较了 2 个图像。我为其中一个品牌运行了这段代码,结果当然是错误的。然后我修改其中一张图像,使两个图像具有相同的尺寸..即使这样我也得到了相同的结果。

public void testImage() throws InterruptedException{
String file1="D:\\image\\bliss_url_2.png";
String file2="D:\\bliss.png";
Image image1 = Toolkit.getDefaultToolkit().getImage(file1);
Image image2 = Toolkit.getDefaultToolkit().getImage(file2);

PixelGrabber grab1 =new PixelGrabber(image1, 0, 0, -1, -1, true);
PixelGrabber grab2 =new PixelGrabber(image2, 0, 0, -1, -1, true);



int[] data1 = null;

if (grab1.grabPixels()) {
int width = grab1.getWidth();
int height = grab1.getHeight();
System.out.println("Initial width and height of Image 1:: "+width + ">>"+ height);
grab2.setDimensions(250, 100);
System.out.println("width and height of Image 1:: "+width + ">>"+ height);
data1 = new int[width * height];
data1 = (int[]) grab1.getPixels();
System.out.println("Image 1:: "+ data1);
}

int[] data2 = null;

if (grab2.grabPixels()) {
int width = grab2.getWidth();
int height = grab2.getHeight();
System.out.println("width and height of Image 2:: "+width + ">>"+ height);
data2 = new int[width * height];
data2 = (int[]) grab2.getPixels();
System.out.println("Image 2:: "+ data2.toString());
}

System.out.println("Pixels equal: " + java.util.Arrays.equals(data1, data2));
}

我只是想验证图像的内容是否相同,即图像属于同一品牌,如果不同,那么有什么区别

请帮助我该怎么做才能进行有效的比较。

最佳答案

也许您不应该使用某些外部库,假设它应该是您自己的工作。从这个角度来看,比较图像的一种方法是获取两幅图像相同部分的平均颜色。如果结果相等(或由于压缩错误等而非常相似)

假设我们有两张图片图像 1 是 4 像素。 (为简化起见,每个像素都用数字表示,但应该是RGB)

1 2
3 4

[ (1+2+3+4)/4 = 2.5 ]

图像 2 是原来的两倍

1 1 2 2
1 1 2 2
3 3 4 4
3 3 4 4

[ ((4*1)+(4*2)+(4*3)+(4*4))/16 = 2.5]

两幅图像的平均像素值(颜色)均为 2.5。(以真实像素颜色,分别比较RGB颜色。三者应该相等或非常接近)

就是这个想法。现在,您应该对最小图像的每个像素和最大图像的相应像素进行此计算(根据两个图像的比例差异)

希望您能找到一个好的解决方案!

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

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