OCR: Как сравнивать изображения, сортировать unmatching и делать это быстро?


1

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

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

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

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

Благодарим за помощь.

Sven

  0

Вы пытаетесь OCR только растровые изображения с псевдонимом, сгенерированным компьютером? Если вы, просто хэш, каждый растровый образ, как blob, и используйте словарь blobs. Else, то, что вы пытаетесь сделать, не имеет смысла, так как сканирование вводит множество артефактов ... 22 фев. 092009-02-22 13:46:05

  0

Это сглаженный текст, созданный компьютером. Фон отличается, но текст всегда имеет тот же цвет. 22 фев. 092009-02-22 14:01:08

  0

Являются ли эти изображения в оттенках серого? Если это так, у вас больше, чем только 0 и 1, вам нужно по крайней мере некоторые пороговые значения для сравнения пикселей. 22 фев. 092009-02-22 14:07:43

  0

Это оттенки серого, и я знаю, что мне нужно использовать пороги. Это не проблема, просто притворись, что у меня есть много массивов с только 0 и 1 в ней и хочу быстро определить ту, которая соответствует 22 фев. 092009-02-22 14:12:49

2

В OCR-мире это довольно редко, что вы бежите в «идеальный матч» между targetresource и оригинальным сравнением ресурсом.

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

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

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

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

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

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

4) Победа, вы нашли матч :)

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

Успехов

[EDIT] Глядя на комментарий в вашем OQ, я скажу, что для хеш-таблицы/словаря datastructure будет самым быстрым для вас. Это или двоичное дерево поиска .. Оба очень зависят от вашего генератора хэш-ключей :)

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

  0

Хорошо, изображение в основном представляет собой таблицу, которая имеет два слегка разных фона. Я мог бы либо установить контраст выше, либо записать фоновый пиксель в белый цвет. Собственный алгоритм hasing выглядит как самая быстрая альтернатива, я рассмотрю это. 22 фев. 092009-02-22 14:17:05

  0

Ссылка на тезис теперь не работает. 27 сен. 162016-09-27 09:01:16