Распознавание текста:Как сравнить изображения, отсортировать несоответствующие и сделать это быстро?

StackOverflow https://stackoverflow.com/questions/574923

  •  05-09-2019
  •  | 
  •  

Вопрос

Мне удалось сохранить каждый символ в виде растрового изображения, и я ищу способ быстро определить, какой это символ.

Поэтому я собираюсь сохранить все возможные символы в массив 1 и 0 и сравнить их с массивом растрового изображения, которое я только что захватил.

Я мог бы выполнить простые проверки, например сравнить, сколько черных пикселей у меня получилось, сравнить размеры и так далее, Но все эти проверки идут медленно (просто предположение ..).

Итак, что я ищу, так это метод, который проходит через каждый пиксель снизу вверх, или случайным образом, который сравнивает массив с набором массивов и сортирует без соответствия, пока не останется только один массив.Но как я могу это реализовать?

Спасибо за вашу помощь.

Sven

Это было полезно?

Решение

В мире распознавания текста довольно редко вы сталкиваетесь с "идеальным соответствием" между targetresource и вашим исходным ресурсом сравнения.

На самом деле это огромная область науки, но вот хорошая диссертация на эту тему, которая должна дать вам некоторые базовые знания:http://www.discover.uottawa.ca /~qchen/my_papers/master_thesis.pdf

Обратите внимание, что подобные алгоритмы очень сложны с математической точки зрения и в настоящее время оптимизированы для стандартного процессора x86.

Если вы ищете идеальное соответствие (я имею в виду, действительно идеальное, вплоть до байта в байт) и вы хотите реализовать это быстро и просто, я бы предложил выполнить алгоритм "быстрого пропуска очевидных несоответствий" - что-то вроде:

1) Сравните размер массивов, если они разные, это не то, что вы ищете

2) Сравните хэш-значение каждого растрового изображения

3) Сравните каждый бит / байт один за другим, и как только вы увидите разницу, это не то, что вы ищете

4) Выиграйте, вы нашли совпадение :)

Это очень медленно, в зависимости от того, чего вы пытаетесь достичь, но легко реализовать, и это сработает.Это хорошо подходит для приложения, похожего на прототип.Как я уже сказал, распознавание текста (и все другие формы цифровой обработки сигналов) - это огромная область исследований, поэтому, к сожалению, вы не можете ожидать, что люди научат вас этому в кратком посте на форуме: (

Удачи

[РЕДАКТИРОВАТЬ] Глядя на комментарий в вашем OQ, я скажу, что переход к структуре данных хэш-таблицы / словаря был бы для вас самым быстрым.Это или бинарное дерево поиска..Оба очень зависят от вашего генератора хэш-ключей :)

[EDIT2 (xD)] "Это текст с псевдонимами, сгенерированный компьютером.Фон отличается, но текст всегда имеет один и тот же цвет ". Там содержится довольно важная информация: P Размер текста / растровых изображений также всегда одинаков?Я бы предложил либо реализовать свой собственный алгоритм хеширования, в котором вы отбрасываете предустановленные цвета фона, чтобы значение хеширования зависело только от цвета текста (и формы этого тоже ofc), либо просто переписать все пиксели фона в ваших целях, чтобы они были того же цвета, что и ваши исходные (или просто установить исходный фон таким же, как у ваших целей?Зависит опять же от того, с какими данными вы здесь боретесь - нужно больше информации :)).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top