сравнение двух изображений в android

в моем приложении я хочу захватить два изображения с помощью камеры, а затем я хочу сравнить эти изображения.

Итак, как я могу сравнить два изображения?

изменить: Сравните первое изображение точно как второй пиксель изображения к пикселю.

Спасибо.

2 ответов


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;
}

на самом деле, вы, вероятно, хотите рассматривать изображение как двумерный массив, если можете, и просто сравнить байты. Я не знаю API изображений Android, но getPixel может быть медленным.

2. возможно, вы конвертируете изображения в строки byte64, а затем сравниваете их.

3.**OpenCV lib для Android:
есть функции для сжатия изображений

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

Подробнее см. сравнение двух изображений


используйте растровое изображение sameAs.

http://developer.android.com/reference/android/graphics/Bitmap.html#sameAs(android.graphics.Bitmap)