比较android中的两个图像

时间:2012-03-19 17:59:09

标签: android image-processing

在我的应用程序中,我想使用相机捕获两个图像,然后我想比较这些图像。

那么,我该如何比较两张图片?

编辑: 比较第一个图像与第二个图像像素完全相同。

谢谢。

2 个答案:

答案 0 :(得分:7)

1。检查高度是否匹配,如果不是则返回false。然后,检查宽度是否匹配,如果不匹配,则返回false。然后检查每个像素,直到找到一个不匹配的像素。当你这样做时,返回false。如果每个像素都匹配,则返回true。

<强>伪代码:

bool imagesAreEqual(Image i1, Image i2)
{
    if (i1.getHeight() != i2.getHeight()) return false;
    if (i1.getWidth() != i2.getWidth()) return false;

    for (int y = 0; y < i1.getHeight(); ++y)
       for (int x = 0; x < i1.getWidth(); ++x)
            if (i1.getPixel(x, y) != i2.getPixel(x, y)) return false;

    return true;
}

实际上,如果可以,您可能希望将图像视为二维数组,并且只是比较字节。我不知道Android图片API,但getPixel可能会很慢。

2。也许您将图片转换为byte64字符串然后进行比较。

3. * *适用于Android的OpenCV lib:
必须具有图像压缩功能

** a。
Core.absdiff() b。 Core.compare()

有关详细信息,请参阅comparing two images

答案 1 :(得分:3)