gpt4 book ai didi

Java图像比较类-添加偏移量

转载 作者:行者123 更新时间:2023-12-01 12:04:15 24 4
gpt4 key购买 nike

我在网上找到了这个Java类,并一直用它来比较图像。不过我想为其添加一个偏移量。例如,如果 2 个图像 99% 或 98% 相似,我希望它返回 true。

public int compareImage(File fileA, File fileB) {
try {
// take buffer data from botm image files //
BufferedImage biA = ImageIO.read(fileA);
DataBuffer dbA = biA.getData().getDataBuffer();
int sizeA = dbA.getSize();
BufferedImage biB = ImageIO.read(fileB);
DataBuffer dbB = biB.getData().getDataBuffer();
int sizeB = dbB.getSize();
// compare data-buffer objects //
if (sizeA == sizeB) {
for (int i = 0; i < sizeA; i++) {
if (dbA.getElem(i) != dbB.getElem(i)) {
return false;
}
}
return true;
} else {
return false;
}
} catch (Exception e) {
System.out.println("Failed to compare image files ...");
return 0;
}
}

执行此操作的最佳方法是什么?

最佳答案

要查看它们是否 99% 或 98% 相似,您必须比较所有像素,而不是在 dbA.getElem(i) != dbB.getElem(i)< 的第一个实例处返回 false/

尝试计数器:

int total = 0;
int is_silimar = 0;
for (int i = 0; i < sizeA; i++) {
total++;
if (dbA.getElem(i) == dbB.getElem(i)) { //change it to ==
is_similar ++;
}
}

//don't return anything yet

然后,当 is_similar/total 为 98% 或 99% 时,您可以返回 true

编辑:如果您想在图像尺寸不同时测试用例,请将 sizeA 更改为 min(sizeA, sizeB)。

关于Java图像比较类-添加偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27755857/

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