在我的应用程序中,我想使用相机捕获两个图像,然后我想比较这些图像。
那么,我该如何比较两张图片?
编辑: 比较第一个图像与第二个图像像素完全相同。
谢谢。
答案 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)