Было бы хорошо знать, для чего вы запускаете этот процесс. Я имею в виду, что ниже я предлагаю возможное использование OCR; конечно, если вы пытаетесь создать собственное OCR, мое предложение не имело бы никакого смысла (у меня возникло подозрение, что вы, возможно, пытаетесь автоматизировать какой-то интерфейс пользовательского интерфейса, отображаемый в браузере).
Различное сглаживание, которое вы можете компенсировать с помощью предварительного порогового значения или вычисления PSNR . Это предполагает, что буквы расположены точно так же.
Если интервал другой (и даже больше, если у вас разные кернинги ) и сглаживание отличается, то я думаю, что вам лучше всего либо распознать оба изображения по отдельности, либо сравнить полученный текст; или вам придется сегментировать каждую текстовую строку, а затем перестраивать изображения для каждой буквы. Обычно вы берете один вертикальный срез, шириной от одного до трех пикселей, из изображения 1; затем получите значения PSNR для пяти разных срезов одинакового размера на изображении 2, выровненные со смещениями от -2 до +2 (скажем); минимальный PSNR даст вам как корректировку смещения для следующих букв, так и надежность совпадения.
Проблема в том, что если буквы действительно разные, вы больше не сможете чтобы надежно вычислить смещения изображения, чтобы вы могли сказать, что «HELLO» и «HILLS» разные, но не сможете количественно оценить разницу, потому что вы потеряли синхронизацию и не сможете сравнить два L. Если только вы не попытаетесь выполнить повторную синхронизацию с большим смещением (от -2 до + X, где X - ширина более широкой буквы, возможно, «W»), но это будет дорого и все еще подвержено ошибкам ( например, при сравнении «13» с буквой «B» или «LI» с «U», «I.» с «L» и т. д. c.).