Вы можете использовать Pearson-Product для соответствия различным изображениям. Вы можете найти его на моем answer. Вместо того, чтобы сопоставлять шаблон, меньший, чем исходное изображение, вы можете напрямую сопоставить два изображения.
Вскоре вы получите отклонение каждого текста от среднего, что даст вам коэффициент корреляции.
Но улучшение этого алгоритма с помощью шейдеров может быть немного сложным. Во-первых, вам нужно вычислить среднее значение textel: возможно, некоторое расширение OpenGL (например, гистограмма) может помочь вам в этой задаче.
Затем вы можете использовать фрагментарные шейдеры для выполнения однокомпонентного вычисления (разница между каждым текстуром с усредненным, вычисленным ранее). Средний текст должен быть передан как единый, и результат должен храниться в плавающей запятой текстуры (вы можете сделать это на объекте фреймбуфера).
Затем вы должны суммировать все textel результирующей текстуры, чтобы получить корреляцию между двумя Souce текстурами.
Это может стоит в том случае, изображения очень большие, в противном случае я думаю, что лучше всего выполнить алгоритм на процессоре, используя набор команд SIMD (например, MMX, SSE, AVX).
Как вы определяете «расстояние» между двумя изображениями? –
Скажите примерно так: distance = (sR-dR) * (sR-dR) + (sG-dG) * (sG-dG) + (sB-dB) * (sB-dB) – JBeurer