Intereting Posts
Проблема при получении push-уведомления от клиента GCM Поверните предварительный просмотр камеры на портретную камеру OpenCV для Android Кнопка и ToggleButton не будут выравниваться на одинаковой высоте Разрешить ввод с клавиатуры Bluetooth, даже если экран заблокирован Android. Volley. VolleyError.networkResponse – null Изменить имя инициативного дубликата Firebase Управление несколькими провайдерами auth Android: автоматически выбирает debug / release Maps v2 api key? «Обновление библиотеки Android» Задача eclipse случайно застряла в моем затмении Pthreads умирают посреди замка мьютекса В чем разница между тегом layout_alignStart и layout_alignLeft? Как реализовать прослушиватель длинного клика и onclicklistener в одном списке Привязка Android и проверка уведомления JUnit Как тестирует соло / небольшая группа разработчиков на нескольких устройствах? Arduino для Android – включение и выключение светодиода с помощью ADK

Приложение для Android OCR: словарь Tesseract

Я разрабатываю приложение для Android, которое берет фотографию и преобразует ее в текст. Я использую tesseract 3 на окнах.

Мне удалось заставить большую часть перевода работать правильно (после выполнения масштабирования, бинаризации, улучшения), но какой-то символ все еще не переведен так, как должен (ri -> m, le -> Ie и т. Д.).

Чтобы исправить это, я думал о том, чтобы заставить tesseract заглянуть в словарь языка (французский в моем случае) и использовать наиболее вероятное слово для перевода. Когда я открыл французский словарь, я был удивлен, увидев все английские слова.

Есть ли способ заставить tesseract найти наиболее вероятное слово на соответствующем языке?

Кроме того, я не нашел много примеров кода для Android в Интернете, и я не уверен, что делаю наиболее эффективную предварительную обработку изображений. Это то, что я сейчас делаю, знаете ли вы, как я мог бы улучшить это еще больше?

photo = WriteFile.writeBitmap(Scale.scale(ReadFile.readBitmap(bitmap), 3, 3)); photo = WriteFile.writeBitmap(AdaptiveMap.backgroundNormMorph(ReadFile.readBitmap(photo))); photo = WriteFile.writeBitmap(Binarize.otsuAdaptiveThreshold(ReadFile.readBitmap(photo))); photo = WriteFile.writeBitmap(Enhance.unsharpMasking(ReadFile.readBitmap(photo), 3, (float) 0.5)); 

спасибо за помощь

EDIT: Например, это те результаты, которые у меня есть Фото документаРезультат фото

И результат текста:

Les действия sociales

Les actions sociales regroupent les activités suivantes: Heureux évenements + Aide for the Handicap + Aide scolarité + aide étudiante + Aide de secours, Malgré un nombre de béné fi ciaires plus important et un coat moyen par activité plus éleve qu'en 2012, т.е. бюджет 2013 alloué couvre largement Les besoins d'ou l'excédent constaté La CFTC ne peut que regretter la suppression en 2013 de I'activité «abonnement enfant» car son fianancement aurait pu étre couvert par l'excédent constaté

Спасибо 🙂

Tesseract имеет файл user.dawg, в который вы можете добавить слова, которые хотите добавить в словарь.

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

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