Подтвердить что ты не робот

Распознавать числа в изображениях

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

У меня есть изображение с 5 номерами в нем, без нарушения (без капчей или что-то в этом роде). Цифры черные на белом фоне, написанные стандартным шрифтом.

Мой первый шаг состоял в том, чтобы отделить числа. Используемый мной алгоритм довольно прост, он просто проверяет, является ли столбец полностью белым и, следовательно, пробелом. Затем он обрезает каждого персонажа, так что вокруг него нет белой границы. Это работает достаточно хорошо.

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

Может ли кто-нибудь дать мне подсказку о том, как это делается?

Это не имеет значения для вопроса, но я буду реализовывать это на С# или Java. Я нашел несколько библиотек, которые бы выполнили эту работу, но я хотел бы сам ее реализовать, чтобы узнать что-то.

4b9b3361

Ответ 1

Почему бы не взглянуть на использование механизма OCR с открытым исходным кодом, такого как Tesseract?

http://code.google.com/p/tesseract-ocr/

Оболочка С# для Тессеракта

http://www.pixel-technology.com/freeware/tessnet2/

Java Wrapper для Tesseract

http://sourceforge.net/projects/tessocrinjava/

Хотя вы, возможно, не рассматриваете возможность использования сторонней библиотеки для ее самостоятельной реализации, существует огромный объем работы, связанной с простой интеграцией стороннего инструмента. Имейте также в виду, что что-то, что может показаться простым (признавая число 5 против числа 6), часто очень сложно; мы говорим тысячи и тысячи строк сложного кода. По крайней мере, посмотрите на исходный код tesseract, и у вас будет веская причина использовать стороннюю библиотеку.

Вот еще один SO вопрос, который даст вам некоторые идеи об используемых алгоритмах: https://stackoverflow.com/info/850717/what-are-some-popular-ocr-algorithms