Вы можете использовать Pearson-Product для сопоставления разных изображений. Вы можете найти его на моем ответе . Вместо того, чтобы сопоставлять шаблон с меньшими размерами, чем исходное изображение, вы можете напрямую сопоставить два изображения.
Вскоре вы получаете отклонение каждого текстового элемента от среднего, что дает вам коэффициент корреляции.
Но улучшить этот алгоритм с помощью шейдеров может быть немного сложно. Во-первых, вам нужно вычислить среднее значение textel: возможно, какое-то расширение OpenGL (например, гистограмма) может помочь вам в этой задаче.
Затем вы можете использовать фрагментные шейдеры для выполнения однокомпонентных вычислений (разница между каждым textel с усредненным, вычисленным ранее. Средний textel должен быть передан как равномерный, а результат должен быть сохранен в текстуре с плавающей точкой (вы можете отобразить его на объекте framebuffer).
Затем вы должны суммировать все тексели полученной текстуры, чтобы получить корреляцию между двумя исходными текстурами.
Это может стоить в случае, если изображения очень большие. В противном случае я думаю, что лучше всего выполнить алгоритм на процессоре, используя набор инструкций SIMD (например, MMX, SSE, AVX).