Как стать автором
Обновить

Комментарии 13

Спасибо за статью. Хотелось бы в дополнение узнать ответы на пару вопросов.
1) Насколько данная библиотека удовлетворила ваши требования и как бы вы оценили качество распознавания?
2) На странице Readme в разделе установка в Windows для версии 3.0 есть ссылка на инсталлятор, а так же рекомендации собрать библиотеку из солюшена в самой vs2008. По какой причине вы выбрали сборку при помощи MinGW?
1) Распознавать пока пробовал только с дефолтными данными (rus.traineddata), при относительно чистом скане печатного текста распознавание почти 100%, сейчас как раз экспериментирую с методами очистки картинок. С использованием словаря и whitelist'а думаю точность распознавания будет ещё выше.
2) Инсталлятор ставится без проблем, но библиотек в комплекте нет как и заголовочных файлов (ну или я не нашёл, тогда придётся посыпать голову пеплом). Со сборкой студией у меня возникли примерно аналогичные проблемы и решения там думаю должны быть примерно аналогичные. MinGW был выбран для единообразия с остальными библиотеками и просто из-за того, что обычно я использую NetBeans.
И ещё вопрос — насколько я помню, у Tesseract были проблемы с распознаванием русского. Они в прошлом или с русским всё так же печально?
Не заметил особых проблем с распознаванием, он даже мой рукопечатный «привет» понял, единственно что букву 'в' пришлось с примерно равными ушками написать.
Если речь о специфических шрифтах, то обучение может стать решением.
Проблем нет.
Можете обучить его даже мандаринскому, если у вас будет изображение символов алфавита. А коды запишете сами какие надо.
Насколько я помню, проблемы были с тем, что там были захардкожены символы латиницы, так что даже в русских словах буквы схожего написания (такие, как 'о', 'А') он распознавал как латинские. Что же, если проблемы больше нет — это здорово.
Лично я использовал tesseract с целью распознавания специфичных символов, и у меня был свой алфавит и свои коды.
Я бы в этом случае решил вопрос также — составил словарь для обучения утилиты состоящий из символов русского алфавита и записал туда нужные коды win-1251 или любой другой кодовой страницы. Это, кстати, уменьшит вероятность ошибки распознавания.
Если же натаскивать утилитку лень, то str_replace вам в помощь.

Скажите, а умеет ли библиотека распознавать заголовки или таблицы?
Насколько помню он умеет распознавать многоколоночный текст, насчёт форматирования вывода именно таблицей не уверен, у меня пока не было необходимости в таком функционале.
Насчёт заголовков не очень понял если честно что подразумевается.
Этот «напильник» напоминает страшный сон любого юниксоида — C:/etc/X11.
Какая дикая смесь СИ и С++. И когда уже люди отучаться ТАК писать на С++?..
Если критика в адрес моего тестового приложения, то всегда рад если меня поправят увы не являюсь гуру в С/С++, пишу так как удобней
Если это в адрес самого tesseract, то это наследие HP, разработка была начата если не ошибаюсь в 1985 (по сути страшно сказать он мой ровесник) и именно на С, а полное портирование на С++ не такое уж простое дело
Я имел в виду код, который написан Вами. А суть проста: если Вы пишете на С++ — то и используйте инструментарий С++, а не СИ. Например, используйте строковые контейнеры (std::basic_string) для работы со строками, и std::basic_stream для работы с файлами. А если Вы пишите на СИ — то в приведенном выше коде замените вызовы операторов new [] и delete [] на calloc/malloc и free соответсвенно.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории