Я искал ресурсы для распознавания числа в изображениях в сети. Я нашел много ссылок, обеспечивающих много ресурсов по той теме. Но к сожалению это более сбивает с толку, чем помощь, я не знаю, где запустить.
У меня есть изображение с 5 числами в нем, ненарушенный (никакая капча или что-то вроде этого). Числа являются черными на белом фоне, записанном в стандартном шрифте.
Мой первый шаг должен был разделить числа. Алгоритм, который я в настоящее время использую, довольно прост, он просто проверяет, является ли столбец совершенно белым и таким образом пространство. Затем это обрезает каждый символ, так, чтобы не было никакой белой границы вокруг этого. Это работает вполне хорошо.
Но теперь я застреваю с фактическим распознаванием числа. Я не знаю то, что является лучшим способом предположить корректный. Я не думаю непосредственно по сравнению со шрифтом, хорошая идея, потому что, если числа только отличаются немного, он больше не будет работать.
Кто-либо мог дать мне подсказку о том, как это сделано?
Это не имеет значения для вопроса, но я буду реализовывать это в C# или Java. Я нашел некоторые библиотеки, которые сделают задание, но я хотел бы реализовать его сам, изучить что-то.
Почему бы не посмотреть на использование движка OCR с открытым исходным кодом, такого как Tesseract?
http://code.google.com/p/tesseract-ocr/
C# Wrapper for Tesseract
http://www.pixel-technology.com/freeware/tessnet2/
Java Wrapper for Tesseract
http://sourceforge.net/projects/tessocrinjava/
Хотя вы, возможно, не рассматриваете возможность использования сторонней библиотеки в качестве ее самостоятельной реализации, существует огромный объем работы, которая уходит на интеграцию стороннего инструмента. Имейте в виду также, что то, что может показаться простым (распознавание числа 5 против числа 6), часто очень сложно; мы говорим о тысячах и тысячах строк сложного кода. По крайней мере, посмотрите на исходный код тессеракта, и это даст вам веские основания захотеть использовать стороннюю библиотеку.
Вот еще один вопрос SO, который даст вам некоторые идеи о задействованных алгоритмах: https://stackoverflow.com/questions/850717/what-are-some-popular-ocr-algorithms