use*_*973 9 android image-processing
在我的应用程序中,我想使用相机捕获两个图像,然后我想比较这些图像.
那么,我该如何比较两张图片呢?
编辑:比较第一个图像精确地作为第二个图像像素.
谢谢.
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;
}
Run Code Online (Sandbox Code Playgroud)
实际上,如果可以的话,您可能希望将图像视为二维数组,并且只是比较字节.我不知道Android图像API,但getPixel可能很慢.
2.也许你将图像转换为byte64字符串,然后比较它们.
3.**适用于Android的OpenCV lib:
必须具有图像压缩功能
**a. Core.absdiff() 湾 Core.compare()
有关详细信息,请参阅比较两个图像