Решил данный вопрос. Спс scrat. выходит такой результат 5-6 фпс. http://www.youtube.com/watch?v=vZfVflE0KlE
Посмотрите в сторону нейронных сетей. (Здесь можно скачать качественные статьи: http://ifolder.ru/18957913). Есть также много способов сравнения (сам я о них узнал только что): 1) "Сначала ищутся "Corellation points" — характерные "сильные" точки на картинке, которые всегда можно точно идентифицировать и по горизонтали и по вертикали. Потом по ним определяется трансформация между картинками (если в обоих изображениях нашлось достаточно corellation points. Трансформация — это сдвиг, зум и поворот. Потом по зтим результатам трансформируем одну из картинок и вычитаем одну из другой, анализируем результат в зависимости от допустимых изменения яркости и нассыщенности." 2) "Как вариант — сделать предварительно Gaussian Blur, после чего считать корелляцию. Сигму конечно же надо подбирать экспериментально. А уже кандидатов проверять более строго. Blur делается довольно быстро, методом БИХ-фильтров, но есть и еще быстрее, типа stack blur. Но главная фишка в том, чтобы иметь быстрый кэш с уже заблюренными изображениями." 3) "Как вариант — дарбулызуть спектральным анализом — предварительно сделать 2D FFT и отбирать возможные кандидаты в частотно-фазовом домене, после чего проверять более тщательно уже в пространственном домене. Это может сработать быстрее. Но может быть и медленнее — надо все проверять." 4) "Разбить картинку на четыре части, вычислить центр масс для каждой части, прежде чем сравнивать картинки попиксельно сравнить центры масс для частей, если разница между массами меньше заданной погрешности то сравнивать попиксельно. В базе хранить центры масс частей для каждой картинки. Разбивать можно не только на 4 части, может и пополам хватит." 5) "Картинки небольшие. Уподобим каждую картинку текстовой строке, то есть выложим ее в линию, и закодируем (условно говоря, делать не надо) буквами. Далее применить алгоритмы схожести текстовых строк. Идея в том, что сдвиг и ротация приведет к тому, что останутся те же "буквы", только немного сместятся их позиции, и критерий похожести будет большим." От себя добавлю: Это способы, конечно, лидируют, но, например, лично я не каждый смогу воспроизвести. Следует прочитать материалы "Вейвлеты в компьютерной графике", насколько мне известно - это самый распространенный способ сравнения изображений. Если задача позволяет использовать дебильW^простые и ресурсоёмкие механизмы, то советую разбить изображение на несколько частей, перевести формат изображения в любой другой понравившийся (будь то base64) и т.д.
посмотри в сторону библиотеки OpenCV, больше чем уверен, что для нее это пустяк, а код есть в примерах
попахивает девелопом удаленного рабочего стола, поэтому, осмелясь это предположить, выкладываю довольно неплохие сорцы на чистом апи и с использованием программного сжатия http://www.sendspace.com/file/gnj5oe