Это зависит полностью от того, как умный Вы хотите, чтобы алгоритм был.
, Например, вот некоторые проблемы:
самое легкое и самое простое алгоритм , я видел, это должно только сделать следующие шаги к каждому изображению:
Редактирование А , алгоритм масштабирования объединения является тем, что при уменьшении масштаба 10 пикселей до каждый сделает это с помощью функции, которая подражает всех тех 10 пикселей и комбинирует их в одного. Может быть сделан с алгоритмами как усреднение, среднее значение или более сложные как шлицы bicubic.
Тогда вычисляют среднее расстояние попиксельно между двумя изображениями.
Для поиска возможного соответствия в базе данных сохраните пиксельные цвета как отдельные столбцы в базе данных, индексируйте набор их (но не все, если Вы не используете очень маленькое изображение), и сделайте запрос, который использует диапазон для каждого пиксельного значения, т.е. каждое изображение, где пиксель в маленьком изображении между-5 и +5 из изображения, Вы хотите искать.
Это легко реализовать, и довольно быстро работать, но конечно не обработает самые усовершенствованные различия. Для этого Вам нужны намного более усовершенствованные алгоритмы.
Вот созданная мной реализация пакета GWT java.math:
http://code.google.com/p/gwt-java-math/
Он основан на реализации Apache Harmony, но был изменен для работы эффективно в Java Script, используя двойные, а не длинные.
Он включает почти полную реализацию BigInteger, BigDecimal, MathContext, RoundingMode и Random.
Чтобы ответить на свой вопрос, я только что нашел проект gwt-math , который добавляет поддержку BigDecimal и решает мою проблему ...
Также здесь - официальный запрос на поддержку BigDecimal в GWT.