比较表示两个图片的两个字节数组



我正在为android编写一个小型应用程序,我需要在两张图片之间进行比较。图片表示为两字节数组。

它们之间有什么算法可以比较吗?我需要检查他们之间所做的更改。

这取决于您是只是想标记它们不同,还是记录它们之间的每一个差异。

只是为了检查它们是否不同(正如Hunter McMillen所指出的)-http://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html:

boolean different = Arrays.equals(byteArray1, byteArray2);

要存储个人差异(假设您的图片大小相同):

byte[] differenceArray = new byte[byteArray1.length];
for (int i = 0; i < byteArray1.length; i++) {
    differenceArray[i] = (byte) (byteArray1[i] - byteArray2[i]);
}

编辑:

如果你想要二维(例如800x600)到你的字节数组,你可以做:

byte[][] differenceArray = new byte[byteArray1.length][byteArray1[0].length];
for (int x = 0; x < byteArray1.length; x++) {
    for (int y = 0; y < byteArray1[0].length; y++) {
        differenceArray[x][y] = (byte) (byteArray1[x][y] - byteArray2[x][y]);
    }
}

如果两个图像之间没有差异,则差异数组将全部为0,否则数字将是字节之间的差异。

最新更新